用frp内网穿透实现windows远程登录内网机器
步骤如下:
阿里云购买服务器
最低配置,30元/月即可。为服务器安装git
先更新apt再安装,否则可能会失败
用frp实现内网穿透非常简单,但是前提是你有一个公网IP的机器,没有的话你需要先买个vps,如果你已经有了,那么可以继续往下看了。
- 我们需要从frp官网下载frp软件 下载地址
你需要根据你的vps系统来选择对应的版本,我的vps是ubuntu的,我选的是frp_0.27.0_linux_amd64.tar.gz
那么直接ssh登录到vps上用命令:
1 | wget https://github.com/fatedier/frp/releases/download/v0.27.0/frp_0.27.0_linux_amd64.tar.gz |
下载到本地,然后解压:
1 | mkdir /usr/local/frp/ |
进frp目录:
1 | [root@izbp147qkvfxrb2efks5y9z ~]# cd /usr/local/frp/frp_0.27.0_linux_amd64/ |
这个目录下有个frps.ini文件,这是服务端的配置文件,内容如下:
1 | [ ] |
记住这个7000端口,文件内容我们不用修改。
vps上的frp是做服务端
因此,我们运行这个服务端
1 | nohup ./frps -c ./frps.ini & |
问题:
运行./frps -c ./frps.ini时,-bash: ./frps: Permission denied
解决:
1
chmod 777 ./frps -c ./frps.ini
即可
其中,frps.ini可为:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15[ ]
bind_port = 7000
vhost_http_port = 8080
vhost_https_port = 8081
token=12345
dashboard_addr = 0.0.0.0
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = adminFRP设置开机自启
开机自启脚本frpstart.sh:
1 | #!/bin/bash |
增加脚本可执行权限:
1 | chmod 755 frpstart.sh |
将脚本移动到/etc/rc.d/init.d目录下,
1 | [root@izbp147qkvfxrb2efks5y9z frp_0.27.0_linux_amd64]#mv frpstart.sh /etc/rc.d/init.d/ |
添加开机自启脚本到自动启动项目中:
1 | [root@izbp147qkvfxrb2efks5y9z frp_0.27.0_linux_amd64]# cd /etc/rc.d/init.d |
- 进入阿里云控制台,添加入站规则,否则客户端可能会连接失败
(报错:[service.go:97] login to server failed: dial tcp 47.114.55.62:7000: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
dial tcp 47.114.55.62:7000: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.)
1 | firewall-cmd --zone=public --add-port=7000/tcp --permanent |
从frp官网下载frp软件的windows版本
这次我们要下载的是windows版本frp_0.27.0_windows_amd64.zipwindows版本是做frp客户端
解压出来的文件夹里有个
frpc.ini
文件,这是客户端的配置文件, 我们需要修改这个文件。进入客户端(想要控制的内网windows),下载frpc配置frpc.ini:
1
2
3
4
5
6
7
8
9[ ]
server_addr = 公网IP
server_port = 7000
[ ]
type = tcp
local_ip = 0.0.0.0
local_port = 3389
remote_port = 3389在
server_addr
这里填入你的公网ip,下面的remote_port
里填写一个你自己定的端口,这个端口不要和现有端口冲突即可,我这里写的是3389,后来我们就需要用这个端口来连接远程桌面
配置好文件以后,用命令:1
frpc.exe -c frpc.ini
来启动客户端,此时会弹出来一个控制台窗口,不用关闭,最小化即可。
现在我们可以来远程连接了
在另一个内网的机器上运行windows远程桌面:
在运行中输入命令:1
mstsc
来打开远程桌面窗口,输入
你的vps公网ip:你刚才设置的remote_port
,比如:49.168.168.168:3389回车,然后等待连接建立吧,速度取决于你的VPS带宽。
- 被控端控制面板–>远程桌面–>允许远程桌面
各个平台下输入ip:3399远程控制和账户名、密码即可。
控制端使用Micosoft remote desktop即可,在IOS, Android, MAC上均有app;若控制端为windows,则使用自带的远程桌面连接即可。
ps: 比TeamViewer免费版快多了,而且没有设备数量限制