开源的内网穿透软件有很多,如 frp和nps
这里使用frp进行搭建。
服务端:Ubuntu 20.04 LTS
客户端:windows 7 32位
版本下载:https://github.com/fatedier/frp/releases
客户端程序和服务端程序都在一个压缩包里,根据环境下载即可。
我这边下载的时linux_amd64
版本和 windows_386
下载解压并修改配置文件
wget https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_linux_amd64.tar.gz
tar xvf frp_0.36.2_linux_amd64.tar.gz
cd frp_0.36.2_linux_amd64/
vim frps.ini
[common]
bind_port = 9988 #指定服务器监听端口,frpc客户端连接的端口
配置frps开机自动启动,官方已经给提供了systemd托管的相关service配置,将其copy到指定目录即可。
root@maple:~/frp_0.36.2_linux_amd64# ll
total 22636
drwxrwxr-x 3 ubuntu ubuntu 4096 May 7 22:43 ./
drwx------ 10 root root 4096 May 7 22:43 ../
-rwxrwxr-x 1 ubuntu ubuntu 9953280 Mar 22 15:00 frpc*
-rw-rw-r-- 1 ubuntu ubuntu 9433 Mar 22 15:02 frpc_full.ini
-rw-rw-r-- 1 ubuntu ubuntu 126 Mar 22 15:02 frpc.ini
-rwxrwxr-x 1 ubuntu ubuntu 13172736 Mar 22 15:00 frps*
-rw-rw-r-- 1 ubuntu ubuntu 5051 Mar 22 15:02 frps_full.ini
-rw-rw-r-- 1 ubuntu ubuntu 26 May 7 19:53 frps.ini
-rw-rw-r-- 1 ubuntu ubuntu 11358 Mar 22 15:02 LICENSE
drwxrwxr-x 2 ubuntu ubuntu 4096 May 7 22:42 systemd/
root@maple:~/frp_0.36.2_linux_amd64#cp systemd/frps* /lib/systemd/system/
root@maple:~/frp_0.36.2_linux_amd64#cp frps /usr/bin/
root@maple:~/frp_0.36.2_linux_amd64#mkdir /etc/frp
root@maple:~/frp_0.36.2_linux_amd64#cp frps.ini /etc/frp/
root@maple:~/frp_0.36.2_linux_amd64/systemd# systemctl enable --now frps
root@maple:~/frp_0.36.2_linux_amd64/systemd# systemctl status frps
● frps.service - Frp Server Service
Loaded: loaded (/lib/systemd/system/frps.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-05-07 20:39:55 CST; 2h 9min ago
Main PID: 172448 (frps)
Tasks: 3 (limit: 842)
Memory: 5.8M
CGroup: /system.slice/frps.service
└─172448 /usr/bin/frps -c /etc/frp/frps.ini
May 07 21:27:55 maple frps[172448]: 2021/05/07 21:27:55 [I] [service.go:449] [ca19905087073602] client login info: ip [114.246.99.47:15999] version [0.36.2] hostname [] os [windows] arc>
May 07 21:27:55 maple frps[172448]: 2021/05/07 21:27:55 [I] [tcp.go:63] [ca19905087073602] [mstsc] tcp proxy listen port [6000]
May 07 21:27:55 maple frps[172448]: 2021/05/07 21:27:55 [I] [control.go:446] [ca19905087073602] new proxy [mstsc] success
May 07 21:28:20 maple frps[172448]: 2021/05/07 21:28:20 [I] [proxy.go:162] [ca19905087073602] [mstsc] get a user connection [114.246.99.47:16013]
May 07 21:28:21 maple frps[172448]: 2021/05/07 21:28:21 [I] [proxy.go:162] [ca19905087073602] [mstsc] get a user connection [114.246.99.47:16016]
May 07 21:28:21 maple frps[172448]: 2021/05/07 21:28:21 [I] [proxy.go:162] [ca19905087073602] [mstsc] get a user connection [114.246.99.47:16019]
May 07 22:04:06 maple frps[172448]: 2021/05/07 22:04:06 [I] [control.go:309] [ca19905087073602] control writer is closing
May 07 22:04:06 maple frps[172448]: 2021/05/07 22:04:06 [I] [proxy.go:87] [ca19905087073602] [mstsc] proxy closing
May 07 22:04:06 maple frps[172448]: 2021/05/07 22:04:06 [I] [proxy.go:159] [ca19905087073602] [mstsc] listener is closed
May 07 22:04:06 maple frps[172448]: 2021/05/07 22:04:06 [I] [control.go:384] [ca19905087073602] client exit success
#端口也已经监听
root@maple:~/frp_0.36.2_linux_amd64/systemd# ss -tlnp
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:* users:(("systemd-resolve",pid=541,fd=13))
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=638,fd=3))
LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=638,fd=4))
LISTEN 0 4096 *:9988 *:* users:(("frps",pid=172448,fd=3))
云主机厂商提供的防火墙记得放行指定的端口。
将下载的windows 386的包复制到 win7系统,解压,并修改frpc.ini配置文件。
[common]
server_addr = XXX.XXX.XXX.XXX #云主机的公网IP
server_port = 9988
tls_enable = true
[mstsc]
type = tcp
local_ip = 127.0.0.1
local_port = 3389 #本地3389端口就是远程桌面RDP的默认端口
remote_port = 6000 #指定一个让服务端监听的远程端口,外网访问云主机公网IP+这个端口即可访问与之关联的本地3389端口
use_encryption = true
use_compression = true
注意远程桌面的服务得开。
在当前目录下输入cmd打开命令行窗口并自动进入到该目录的环境。
启动客户端
可以看到服务端已经监听了客户端指定的远程端口
测试
测试成功
但是这样运行客户端会随着窗口的关闭而使客户端软件关闭。连接就断开了。
通过任务计划配置客户端开机启动并后台执行。
配置启动时延迟一段时间执行,不然会因为网卡没有获取到IP地址而执行失败。
程序和参数 组合起来就是启动客户端的命令
E:\frp_0.36.2_windows_386\frpc.exe -c E:\frp_0.36.2_windows_386\frpc.ini
下一步完成,重启测试即可。