搭建内网穿透实现访问windows远程桌面

搭建内网穿透实现访问windows远程桌面

开源的内网穿透软件有很多,如 frp和nps

  • frp github地址:https://github.com/fatedier/frp
  • nps github地址:https://github.com/ehang-io/nps

这里使用frp进行搭建。

实验环境

服务端:Ubuntu 20.04 LTS
客户端:windows 7 32位

版本下载:https://github.com/fatedier/frp/releases
客户端程序和服务端程序都在一个压缩包里,根据环境下载即可。
我这边下载的时linux_amd64版本和 windows_386
搭建内网穿透实现访问windows远程桌面_第1张图片

1. 服务端配置

下载解压并修改配置文件

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))     

云主机厂商提供的防火墙记得放行指定的端口。

2. 客户端配置

将下载的windows 386的包复制到 win7系统,解压,并修改frpc.ini配置文件。
搭建内网穿透实现访问windows远程桌面_第2张图片

[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

注意远程桌面的服务得开。
搭建内网穿透实现访问windows远程桌面_第3张图片
在当前目录下输入cmd打开命令行窗口并自动进入到该目录的环境。
搭建内网穿透实现访问windows远程桌面_第4张图片
启动客户端
搭建内网穿透实现访问windows远程桌面_第5张图片
可以看到服务端已经监听了客户端指定的远程端口
在这里插入图片描述
测试
搭建内网穿透实现访问windows远程桌面_第6张图片
测试成功
搭建内网穿透实现访问windows远程桌面_第7张图片
但是这样运行客户端会随着窗口的关闭而使客户端软件关闭。连接就断开了。

通过任务计划配置客户端开机启动并后台执行。
搭建内网穿透实现访问windows远程桌面_第8张图片
搭建内网穿透实现访问windows远程桌面_第9张图片
配置启动时延迟一段时间执行,不然会因为网卡没有获取到IP地址而执行失败。
搭建内网穿透实现访问windows远程桌面_第10张图片
搭建内网穿透实现访问windows远程桌面_第11张图片
程序和参数 组合起来就是启动客户端的命令
E:\frp_0.36.2_windows_386\frpc.exe -c E:\frp_0.36.2_windows_386\frpc.ini

下一步完成,重启测试即可。

你可能感兴趣的:(#,Linux服务,linux,内网穿透,frp)