阿里云服务器拥堵生产力环境下的简单高效开源的内网穿透工具——FRP的搭建教程
华为平板云服务器
与zerotier、tailscale等基于点对点的内网穿透的商业软件不同,FRP是在github上的一个开源项目,是服务器—客户端运行模式,可提供闭环的虚拟局域网环境。
项目地址:https://github.com/fatedier/frp搭建FRP服务器端需要一台具有固定IP地址的主机、Linux、Windows或者MacOX系统均可,openwrt路由器也可以,由于FRP是基于服务器—客户端运行模式,如果选用云计算主机搭建,尽量选择离自己最近的节点,这样可以尽可能地降低延迟;另外,FRP的运行模式决定了联网需要消耗服务器的流量,因此选择云计算主机时除了性能之外,还要注意流量是否能满足自己的需求。
我以甲骨文VPS为例,来搭建Linux系统下的服务器端,
新建一台1核CPU1G内存的服务器,系统ubuntu20.04LTS,
分配IP地址,
添加ipv6路由表,
添加网络安全列表,增加出入站规则,放行出入站流量,
测一下ping值,
用SSH客户端应用程序连接主机,
获取root权限
sudo-i更新可安装软件包的列表
aptupdate更新可升级软件包
aptupgrade查看服务器防火墙状态,
ufwstatus如果防火墙处于活动状态,需要执行以下步骤,
添加服务器防火墙规则,放行你将要使用的端口,比如80、443、6001-6200、7000、7001、7500等等ufwallow 80重启防火墙,让规则生效ufwreload查看端口是否放行,ufwstatusVPS服务器设置完成,接下来开始搭建FRP服务器端,
输入命令
exportFRP_VERSION=0.44.0 mkdir -p /usr/frpcd/usr/frp wget"https://github.com/fatedier/frp/releases/download/v${FRP_VERSION}/frp_${FRP_VERSION}_linux_amd64.tar.gz"tar xzvf frp_${FRP_VERSION}_linux_amd64.tar.gz mv frp_${FRP_VERSION}_linux_amd64/* /usr/frp修改应用程序自带的服务器端配置文件,进入FRP的安装目录,
/usr/frp找到frps.ini文件,点击鼠标右键,打开文件,
将以下服务器端配置文件内容复制粘贴替换原来的内容,
[common]bind_addr=0.0.0.0bind_port=7000bind_udp_port=7001vhost_http_port=80vhost_https_port=443dashboard_addr=0.0.0.0dashboard_port=7500dashboard_user= admindashboard_pwd= passworddashboard_tls_mode=truedashboard_tls_cert_file= /etc/ssl/private/xueyizhan.tk.cerdashboard_tls_key_file= /etc/ssl/private/xueyizhan.tk.key如果不用SSL证书,这三行代码可以用注释掉authentication_method= tokentoken=12345678subdomain_host= xueyizhan.tk点击保存,
保存成功,退出编辑文本,
使用systemd创建一个frps.service的系统服务,让frps可以开机自启,
在/etc/systemd/system目录下创建一个文件,命名为frps.service,
输入命令
vi/etc/systemd/system/frps.service将配置文件的内容复制粘贴到新创建的frps.service文件中,
[Unit]Description=Frp Server ServiceAfter=network.target[Service]Type=simpleUser=rootRestart=on-failureRestartSec=5sExecStart=/usr/frp/frps -c /usr/frp/frps.ini[Install]WantedBy=multi-user.target按Esc键,推出编辑状态,
输入命令
:wq保存文件,
进入/etc/system/system目录,并刷新,显示frps.service,说明创建成功。
登录阿里云将域名解析到服务器的IP地址,
上传SSL证书到服务器配置文件指定的目录中,
如何申请免费的SSL证书,请参考我的另一篇教程《申请免费支持多域名的通配符SSL证书并自动续期的保姆级教程》
由于不是root登录,虽然获得了root权限,也无权直接上传到/etc/ssl/private目录,先上传到/tmp目录,
再用命令移动到/etc/ssl/private目录,
mv/tmp/xueyizhan.*/etc/ssl/private/没有报错,说明移动成功,
设为开启自启,
systemctlenablefrps启动frps,
systemctlstart frps查看frps运行状态,
systemctlstatusfrps运行正常,
systemd配置的frps系统服务命令如下:
启用服务,实现开机自启systemctlenable frps启动服务systemctlstart frps服务状态systemctlstatus frps停止服务systemctlstop frps禁用服务systemctldisable frps重启服务systemctlrestart frps登录网页端,查看运行情况,
https://www.xueyizhan.tk:7500输入在frps配置文件中设置的用户名admin和密码password,
生产力环境,建议还是使用TLS连接,以确保安全,
至此,Linux系统下FRP服务器端搭建配置完成。
接下来再介绍如何在Windows系统下搭建配置FRP服务器端,
首先下载相应版本,我的windows是intel芯片64位,要下载amd64版本,
下载链接:https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_windows_amd64.zip解压到安装目录,
用记事本编辑配置文件,
将服务器端配置文件粘贴到文件中替换原来的内容,
[common]bind_addr=0.0.0.0bind_port=17000bind_udp_port=17001vhost_http_port=80vhost_https_port=443dashboard_addr=0.0.0.0dashboard_port=7500dashboard_user= admindashboard_pwd= passworddashboard_tls_mode=truedashboard_tls_cert_file= C:Program Filesrp_0.44.0_windows_amd64xueyizhan.tk.cerdashboard_tls_key_file= C:Program Filesrp_0.44.0_windows_amd64xueyizhan.tk.key如果不用SSL证书,这三行代码可以用注释掉authentication_method= tokentoken=12345678subdomain_host= xueyizhan.tk由于我的windows系统7000端口已经占用,监听端口改为17000/17001
注意一点,Program Files有权限问题,需要先保存到其他目录,再复制粘贴替代原来的文件,
上传SSL证书到配置文件指定的目录,
打开CMD终端,进入FRP安装目录,
输入启动命令,
开源云服务器排名
frps-cfrps.ini允许程序通过防火墙,
启动成功,
阜阳云服务器公司
但是黑窗口要开启状态,不能关闭,一旦关闭,进程就结束了。
接下来解决这种黑窗口模式运行,将程序注册为系统服务,让程序在后台运行,并且实现开机自启,
首先去下载一个软件SrvanyUI,这是一个Windows系统下可以自建用户服务的小程序,软件作者的博客地址:
https://wangye.org/blog/archives/644/下载后解压到C盘,
双击srvanyui运行,
点击左上角+添加,
选择自建服务,并依次填写,完成后点击确定,
服务名称:FrpServerService内部标识:frps服务描述:FRP是高性能反向代理应用,是一款内网穿透工具来让外网与内网建立起连接,实现无公网IP的远程访问。 程序路径:点击浏览,找到FRP安装目录,选择frps.exe执行文件,点击打开 启动参数:-cfrps.ini启动方式:自动(保持默认)点击确定,启动服务,
打开windows服务,可以看到frps已经注册为系统服务,可以通过面板来实现程序的启动、停止和重启等。
启动后,登录面板,运行正常(将windows服务器端解析到frp.xueyizhan.tk来演示)。
接下来设置客户端,
最理想的选择是一个客户端主机将局域网内所有需要联网的设备全部接入,这需要主机7x24小时正常运转,装有openwrt系统的路由器是最佳选择,
用SSH客户端应用程序连接openwrt路由器,首先更新软件包列表,
输入命令
opkgupdate安装frpc和luci-app-frpc,
输入命令
opkginstall frpc luci-app-frpc安装成功,
你也可以通过openwrt路由器的后台管理界面来安装FRP,
登录路由器管理后台,在左侧菜单选择系统>>软件包,在筛选器对话框中输入frpc搜索,
安装frpc和luci-app-frpc两个软件包,
安装安装后刷新路由器后台管理界面,在左侧菜单服务中会出现Frp内网穿透选项,这是FRP的luci管理界面,可以通过可视化界面来配置FRP客户端,
根据你的FRPS配置文件的设置,在配置界面依次输入,
勾选启用 服务器:www.xueyizhan.tk或者 144.24.78.59端口:7000 令牌:12345678 用户名:留空即可HTTP穿透服务端口:80HTTPS穿透服务端口:443 服务注册间隔:40(保持默认或者留空均可)其他设置保持默认即可,
设置完成后,点击保存并应用,设置生效后,点击上方菜单日志查看运行状况,与服务器的连接正常,但是没有客户端在运行,
接下来根据你自己的需要添加客户端,回到基本设置界面,点击新增,
在新打开的设置界面中,选择启用,
根据自己的情况选择连接协议,如果主机上配置了SSL证书,HTTPS协议是首选,
我们在FRPS的配置文件里已经设置了域名,这是我们就可以选在子域名或者同时使用2中域名,如果在配置文件中没有设置域名,自能选择自定义域名,
在子域名输入要解析的主机名,
选择要穿透的主机内网地址,并输入端口号,如果是HTTP协议,对应的是80端口,
最后输入服务备注名,这个不可重复,完成后点击保存并应用,让配置生效。
返回frpc配置界面后,会发现服务列表出现了刚刚配置的主机,
到日志界面查看运行情况,运行正常,
这还没有完成全部配置,还需要登录阿里云增加相应的DNS解析记录,
这里有一个小技巧,添加解析记录时增加别名(CNAME)记录类型,来代替主机(A)记录类型,这样如果你将来更换服务器IP地址时只更新服务器的主机记录,而不用更新所有记录,
等一会儿,解析生效后就可以用域名来访问路由器管理后台了,
回到路由器管理后台界面,再添加其他的主机穿透,
SSH主机穿透,内网主机默认端口是22,
测试一下,新建一个SSH连接,
连接成功,
微软远程桌面连接这样配置,内网主机默认端口是3389,
测试一下,新建一个RDP连接,
连接成功,
同时使用2种域名这样配置,别忘了添加相应的解析记录,
你可以按照以上步骤和方法将局域网内所有需要做内网穿透的主机全部配置在openwrt路由器上,这样就不用每一台主机都分别安装FRP客户端程序,并且openwrt完全可以实现7x24小时开机,不用担心哪个客户端掉线。所以说,openwrt路由器是最理想的FRP客户端选择。
FRP的软件包同时包含了服务器和客户端应用程序,因此如果使用windows或者linux搭建FRP客户端,搭建配置过程与FRP服务器端完全相同,搭建过程可以参考FRP服务器端的搭建步骤,只是将配置文件和启动程序替换成FRP客户端的就可以,就不再一一演示搭建过程,只分享一下配置文件的模板,供大家搭建时使用,
FRP客户端,Linux、Windows系统下配置文件都是frpc.ini,没有区别,模板如下,
[common]server_addr=144.24.78.59server_port=7000token=12345678需要加上log文件的路径log_file= frpc.logtrace, debug, info, warn, errorlog_level= infolog_max_days=3如果只设置主机自身的穿透服务,local_ip = 127.0.0.1[router]type= httplocal_ip=192.168.10.2local_port=80subdomain= router[ssh_router]type= tcplocal_ip=192.168.10.2local_port=22remote_port=6002[rd_e93z]type= tcplocal_ip=192.168.10.30local_port=3389remote_port=6030[opwt]type= httpslocal_ip=192.168.10.1local_port=443subdomain= opwtcustom_domains= opwt.sample.orgLinux系统使用systemd配置系统服务,让frpc可以开机自启的配置文件模板,
[Unit]Description=Frp Client ServiceAfter=network.target[Service]Type=simpleUser=rootRestart=on-failureRestartSec=5sExecStart=/usr/frp/frpc -c /usr/frp/frpc.ini[Install]WantedBy=multi-user.targetsystemd配置的frpc系统服务的命令,
启用服务,实现开机自启systemctlenable frpc启动服务systemctlstart frpc服务状态systemctlstatus frpc停止服务systemctlstop frpc禁用服务systemctldisable frpc重启服务systemctlrestart frpcWindows系统使用SrvanyUI将frpc注册为用户服务,让frpc实现开机自启的模板文件,
服务名称:FrpClientService内部标识:frpc服务描述:FRP是高性能反向代理应用,是一款内网穿透工具来让外网与内网建立起连接,实现无公网IP的远程访问。 程序路径:点击浏览,找到FRP安装目录,选择frpc.exe执行文件,点击打开 启动参数:-cfrpc.ini启动方式:自动(保持默认)这期有关FRP内网穿透应用搭建与配置的教程就分享到这里了,如果教程对你有用,欢迎关注学驿站,可以学习更多的电脑、网络和数码使用技巧。
天津云服务器商家

扫码关注
微信好友
关注抖音