使用frp服务实现对内网机器的远程连接
为何要用
我们并不是每天都会接触到实验室内网环境。当不在学校时,如何访问内网的资源成了一个头疼的问题。本文旨在提出一种内网穿透解决方案,在外网环境下优雅的访问到内网的任何端口。即使身离学校也可以方便的修改内网模型,访问内网计算资源。
特殊需要
一台公网机(有公网ip的vps, 比如阿里云服务器)
frp 端口转发软件 :下载地址
安装
windows不用说,这里讲Ubuntu的安装
选择相应版本,右键复制链接
打开终端,输入wget 复制的链接地址
即可开始下载
下载完成后,找到安装包,解压即可,解压命令为tar -zxvf 包名
公网机、内网机都需要安装,且frp版本要一致。
配置
公网机配置
修改 frps.ini 文件,这里使用了最简化的配置:
1 | # frps.ini |
Windows 启动 frps:
1 | ./frps.exe -c ./frps.ini |
Ubuntu 启动 frps:
1 | ./frps -c ./frps.ini |
Ubuntu 在后台开启运行 frp 服务
1 | nohup ./frps -c frps.ini >/dev/null 2>&1 & |
内网机器配置
修改 frpc.ini 文件,假设 frps 所在服务器的公网 IP 为 x.x.x.x;
1 | # frpc.ini |
Windows 启动 frpc:
1 | ./frpc.exe -c ./frpc.ini |
Ubuntu 启动 frpc:
1 | ./frpc -c ./frpc.ini |
此时,你就可以通过你的外网 IP + 远程端口号来实现对内网相关服务的访问了。
设置开机启动
1 | sudo gedit /etc/systemd/system/frpc.service |
按如下修改
1 | [Unit] |
使用sudo systemctl enable frpc.service
启用服务
服务器端(公网机器)同理
白嫖简化步骤
考虑到很多人负担不起公网机的价格,这里提供发布免费公网域名的网站
frp免费公共服务器列表
由于域名供应商已经配置好了公网机端,所以我们只需要配置我们需要连接的内网机即可
首先找到可用的服务器,比如
上面显示它所用的frp版本为0.14.1,所以我们也必须安装相应的frp版本在内网机上,否则由于软件版本不匹配,连不上。
按照之前的教程,根据所提供的信息,修改frpc.ini,如下:
这里注意0.17.0版本之前用的是privilege_token = xxxx
,而之后的版本用的是token = xxxx
,远程端口号必须设置在服务商所提供的范围内,如图中TCP/UDP端口为1000-65535,则再此区间任取端口填入就行。
设置完,你便可以通过相应的SSH软件,连接内网机器,主机名为公网域名,端口号为你设置的远程端口
有的服务商还提供了二级或三级域名,如图:
则 frpc.ini 配置如下格式
1 | [common] |
设置完,你便可以通过相应的SSH软件,连接内网机器
如:主机名为http://xxorg.frp1.chuantou.org
,端口号为53389