网上找到一个linux下frp服务端的一键安装脚本，还不错。安装好以后，即可把frps注册成为Linux系统服务，可随系统启动。脚本来源：http://koolshare.cn/thread-65379-1-1.html但是这个脚本目前支持的最高版本是0.13.0，而frp官网已经有0.14.1了。没关系，稍微改动下安装脚本就可以了。1.下载安装脚本文件：https://raw.githubusercontent.com/clangcn/onekey-install-shell/master/frps/install-frps.sh2.编辑脚本里面第15行“program_version="0.13.0"修改为最新版本“program_version="0.14.1"就可以了。3.然后把脚本上传至服务器root目录，执行以下命令进行安装：chmod 700 ./install-frps.sh ./install-frps.sh install 4.安装步骤如图：5.安装好即可用客户端进行连接了，客户端配置参考：[common] server_addr = XXX.XXX.XXX.XXX server_port = 7080 privilege_token = ZWlJNX98uZW0BMrl tcp_mux = true ... #后面具体穿透内容根据需要参考：http://www.yizu.org/archives/528/。 客户端命令行看下图信息，说明已经穿透成功。通过”服务器IP:dashboard_port”可以查看frp统计数据，用户名、密码为服务端配置文件dashboard_user、dashboard_pwd设置
由于IPv4地址的越来越紧张，国内运营商基本都不再给家庭宽带用户提供公网IP地址，这让一些监控、NAS等一些有需要链接到公网的家庭应用难以突破家里这个小局域网。由于架设NAS需要，这几天研究了下内网穿透，采用Frp这款国人开发的开源软件，非常好用。另外还有一款Ngrok没有尝试。以下配置方法经我个人实践验证，实现了web和远程桌面应用的穿透，记录在这里既为了分享给有需要的网友，也为了资料留存。首先需要下载Frp这个软件Frp的下载地址：https://github.com/fatedier/frp/releasesFrp的官方中文文档：https://github.com/fatedier/frp/blob/master/README_zh.md截至本文撰写时间，最新版本是V0.14.0，本文配置也是基于这个版本，其它版本未验证。解压出来frps(windows为frps.exe)和frps.ini为服务端的程序和配置文件，frpc(windows为frpc.exe)和frpc.ini为客户端的程序和配置文件。我外网机器用的linux，内网机器是windows，其他系统配置上没有区别。然后进行软件的配置服务端frps.ini[common] bind_port = 7080 #客户端和服务端之间通信的端口 vhost_http_port = 8080 #对外网提供web访问的端口 客户端frpc.ini[common] server_addr = X.X.X.X #服务端IP server_port = 7080 #与服务端bind_port一致 [web] type = http local_port = 8800 #内网机器web服务端口 custom_domains = xxx.com #提供外网访问的域名 [RemoteDesktop] type = tcp local_port = 3389 #内网机器远程桌面端口 remote_port = 6000 #内网机器提供外网远程桌面链接的端口 最后启动软件配置好后,服务端上传到外网服务器，客户端上传到家里的内网主机。采用命令行启动，格式为：程序 -c 配置文件。./frps -c ./frps.ini #服务端启动(linux) frpc.exe -c frpc.ini #客户端启动(windows) 服务端看到如下启动信息，即启动成功：2017/12/12 22:11:59 [I] [service.go:87] frps tcp listen on 0.0.0.0:7080 2017/12/12 22:11:59 [I] [service.go:112] http service listen on 0.0.0.0:8080 2017/12/12 22:11:59 [I] [main.go:112] Start frps success 2017/12/12 22:11:59 [I] [main.go:114] PrivilegeMode is enabled, you should pay more attention to security issues 客户端看到如下启动信息，即启动成功：2017/12/12 22:19:02 [I] [control.go:277] [xxxxxxxxxxxxxxxx] login to server success, get run id [xxxxxxxxxxxxxxxx], server udp port [0] 2017/12/12 22:19:02 [I] [control.go:412] [xxxxxxxxxxxxxxxx] [web] start proxy success 2017/12/12 22:19:02 [I] [control.go:412] [xxxxxxxxxxxxxxxx] [RemoteDesktop] start proxy success 如果内网程序启动时链接服务端失败，可能是由于服务端端口被防火墙屏蔽，可以查看防火墙设置。