frp实现远程访问内网windows

外网环境下,连接windows远程桌面时,目标主机必须有外网IP。然而很多情况下,我们的主机都是没有外网IP的,因此我通过Frp和一个具有外网IP的vps实现内网穿透进而进行远程桌面。

我所用的VPS为Vultr的主机,有ipv4的公网ip。配置为CentOS7x64,512M,20GB。每月3.5刀。

首先将内网windows主机的远程桌面打开并配置防火墙,这里不再细说。

##一、VPS端部署Frp服务器端

首先使用如下命令从官方github下载服务器端frp并解压:

~~~bash

wget https://github.com/fatedier/frp/releases/download/v0.16.1/frp_0.16.1_linux_amd64.tar.gz

tar -zxvf frp_0.16.1_linux_amd64.tar.gz

~~~

进入frp所在的目录:

~~~bash

cd frp_0.16.1_linux_amd64

~~~

使用命令nano frps.ini修改frps.ini文件:

~~~bash

[common]

bind_port = 7000

privilege_token = xxxxxx

dashboard_port = 7001

dashboard_user = user

dashboard_pwd = 123456

~~~

privilege_token是特权模式下与客户端连接的密码

dashboard_port是web控制页面也可以不设置。

设置完成,后台运行frps并将日志写入logs文件:

./frps -c ./frps.ini -L logs &

可以使用如下命令实时查看日志文件:

tail -f logs

服务器端配置完成!

##二、windows主机上安装Frp客户端

下载windows版Frp:

https://github.com/fatedier/frp/releases/download/v0.16.1/frp_0.16.1_windows_amd64.zip

修改frpc.ini文件:

[common]

server_addr = xx.xx.xx.xx

server_port = 7000

privilege_token = xxxxxx

[RemoteDesktop]

type = tcp

local_addr = 127.0.0.1

local_port = 3389

remote_port = 7002

其中:

server_addr 是外网vps的ip地址

server_port要与设置服务器端时的bind_port一致,

privilege_token与服务器端一致

remote_port注意不要冲突

然后运行frpc.exe。

注意:

这里有一个坑,如果卡在以上界面,一段时间后报错,并且服务器logs没有任何响应:

[W] [control.go:109] login to server failed: dial tcp 108.61.23.7: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 108.61.23.7: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.

这时说明服务器的防火墙没有打开该端口,centos7默认为firewall防火墙,我这里还用iptables防火墙。

注意到以下关于防火墙的命令:

我们需要将7000(服务器端中的bind_port)端口放行,再vps中输入以下命令:

iptables -F

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -p tcp -m tcp --dport 7000 -j ACCEPT

然后重新连接windows客户端

连接成功!

现在就可以用vps的ip:端口号连接远程桌面了(本文为xx.xx.xx.xx:7002)。

你可能感兴趣的:(frp实现远程访问内网windows)