美文网首页
frp实现远程访问内网windows

frp实现远程访问内网windows

作者: hrcl2015 | 来源:发表于2018-11-27 14:42 被阅读0次

    外网环境下,连接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

          本文链接:https://www.haomeiwen.com/subject/ncmgqqtx.html