frps搭建内网穿透服务器,内网穿透服务

      本文基于UBNT EdgeRouter ER-X路由器,在不额外增加硬件的情况下,实现DDNS,搭建frps内网穿透服务。

       Teamviewer开始收费了,向日葵之类用起来又不顺手,试来试去还是Windows远程桌面最好用。Windows远程桌面基于Windows底层数据通信,画质清晰操作还流畅,显示分辨率能够自适应,用过的都说好。

        但是,办公室电脑在内网,并不能从外部访问。远程桌面端口映射出去也不符合网络管理的安全原则。因此决定搭建frps服务,实现内网端口穿透。没有公网IP的同学可以在阿里云、腾讯云上找个VPS搭建。家里有公网IP有UBNT的同学就可以看我这篇文章开搞。

一、获取公网IP、配置DDNS

    首先与电信亲切交谈,获得公网IPv4地址(只要努力一般都能搞得到)。

    由于公网IP是动态变化的,因此需要配置DDNS,申请一个免费的动态域名,推荐使用pubyun:http://www.pubyun.com/ 我一直在用,免费白嫖了好几年了,稳定可靠基本没出过什么问题。(动态域名随便起个名字就行,如果对名字不满意,可以购买低价静态域名,配置CNAME解析到pubyun域名)

    登陆ER-X控制台,逐行输入

configureset service dns dynamic interface pppoe0 service custom-pubyun host-name yourdomain.f3322.netset service dns dynamic interface pppoe0 service custom-pubyun login youraccountset service dns dynamic interface pppoe0 service custom-pubyun options ssl=noset service dns dynamic interface pppoe0 service custom-pubyun password yourpasswordset service dns dynamic interface pppoe0 service custom-pubyun protocol dyndns2set service dns dynamic interface pppoe0 service custom-pubyun server www.pubyun.comcommitsave

其中 yourdomain.f3322.net 为动态域名,youraccount为pubyun账户名,yourpassword为pubyun密码。

你可以输入以下命令,验证DDNS是否已正常工作:

ubnt@EdgeRouter:~$ show dns dynamic status interface : pppoe0 ip address : 113.22.33.45 host-name : yourdomain.f3322.net last update : Wed Aug 11 14:00:51 2020 update-status: good

看到 update-status: good 动态域名已更新。

此时,在任意一台连接互联网的Windows系统上,打开cmd 执行:

C:\Users\Administrator> nslookup yourdomain.f3322.net服务器: UnKnownAddress: 192.168.1.1非权威应答:名称: yourdomain.f3322.netAddress: 113.22.33.45

看到Address为路由器公网IP,证明DDNS正常工作。如果你在ER-X防火墙上允许ICMP,理论上能够从外网ping通yourdomain.f3322.net。(ER-X防火墙的配置请自行查资料)

二、在 EdgeOS 上配置运行frps

      通过SSH连接到ER-X,软件不限,用着顺手就行,用户名和密码与web登陆端一致:

        从GitHub上下载frp:https://github.com/fatedier/frp/releases/ 上不去的话翻一下,其它渠道也可以。

       注意从releases中,下载最新版本的 linux_mipsle版

解压后,仅保留以下几个文件:

 修改frps.ini的内容为:

# [common] is integral section[common]bind_addr = 0.0.0.0bind_port = 7000authentication_method = tokentoken = ABC123456# 设置一个密码,frpc的密码要和这里一致

修改frps.service内容为:

[Unit]Description=Frp Server ServiceAfter=network.target[Service]Type=simpleUser=nobodyRestart=on-failureRestartSec=5sExecStart=/home/ubnt/frp/frps -c /home/ubnt/frp/frps.iniLimitNOFILE=1048576[Install]WantedBy=multi-user.target

上传frp文件夹到ER-X的 /home/ubnt 目录下,注意检查路径和文件名,与frps.service的ExecStart对应:

 执行以下命令:

0.进入frp目录 cd /home/ubnt/frp1.复制 frps.service 到 /lib/systemd/system/sudo cp frps.service /lib/systemd/system/2.赋予权限sudo chmod 777 frpssudo chmod 777 frps.ini3.启动frps服务sudo systemctl start frps4.配置开机启动sudo systemctl enable frps

 此时,执行sudo systemctl status frps 显示运行状态:

其它可能用到的命令:

停止服务 systemctl stop frps重启服务 systemctl restart frps禁用开机启动 systemctl disable frps 三、配置防火墙,开放7000端口和你希望代理的端口

设置好新规则后,注意将Drop invalid state拖动到最下面,别忘了开放你需要映射的端口。防火墙配置请参考UBNT官方论坛。

四、办公室电脑上配置frpc

       这部分就不详细解释了,网上内容非常多,简单放一下我的配置文件:

[common]server_addr = yourdomain.f3322.netserver_port = 7000token = ABC123456[RDP_TCP]type = tcplocal_ip = 127.0.0.1local_port = 3389remote_port = 53389use_compression = trueuse_encryption = true

     为了安全起见,remote_port配置成了53389,防弱口令扫描攻击。 ER-X防火墙上也应该允许53389端口。

      建议使用winsw将frpc配置成Windows的服务,实现开机启动。参考:https://www.axay.cn/36.html

五、从此之后就可以在任何地方愉快的使用远程桌面了

       

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注