frp内网穿透实现远程

要内网穿透嫌麻烦可以直接用诸如“花生壳“、”natapp“等免费产品,用别人的东西先不说速度如何,总有“寄人篱下”的感觉,所以最好是能自己动手实现,前提是的有一台拥有公网ip的服务器。
主流的内网穿透工具有以下两种,两个同样开源,同样用golang编写,市面上大多数内网穿透产品都是基于这两个开发的:

  • ngrok
    首先排除ngrok,原因:
    1. 安装麻烦费时
    2. 有断连的bug
    3. 速度实测不如frp
  • frp
    使用frp的原因:
    1. 安装十分简单省心
    2. 作者提供编译好了二进制文件(不用配置环境)
    3. 功能令人满意,稳定运行

一、frp简介

frp是一个将局域网个人电脑、服务器代理到公网的内网穿透工具,支持tcp流量转发,可支持任何tcp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面…)。目前市面上提供类似服务的有花生壳、TeamView、向日葵等等,但要使用第三方的公网服务器就必须为第三方付费,并且这些服务都有各种各样的限制,此外,由于数据包会流经第三方,因此对数据安全也是一大隐患。
而frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。

二、frp服务端安装

  • 从项目地址上下载系统对应的releases最新程序

  • 配置服务端

绑定frp服务端运行端口和设置frp 的状态以及代理统计信息展示

  • 运行服务端frp
// 解压frp安装包
tar -zxvf frp_0.29.1_linux_amd64.tar.gz
// 进入解压包
cd frp_0.29.1_linux_amd64/
// 启动frp服务
./frps -c frps.ini
  • AdminUI界面

三、frp客户端安装

  • 同样从项目地址中下载客户端系统对应的版本
  • 配置客户端
  • 运行客户端frp

    ./frpc -c ./frpc.ini

    四、注册windows服务端自启frp

  • 在windows下使用nssm 将frp注册为服务.使其开机自启动&后台运行.

  • 下载nssm 解压nssm到frp根目录。

  • 以管理员身份运行cmd。 输入 cd D:\frp_0.18.0_windows_amd64 回车运行 nssm install frpc

点击path选择frp相关目录,输入相关参数。点击Install service 即可 安装为服务.如有安全软件阻挡,允许即可。在服务管理中查找frpc服务并启动。

接着可以在服务看到frp已经注册到windows服务中

远程开启使用 stcp(secret tcp)

安全暴露内网,要访问这个服务的机器上启动另外一个 frpc。

// frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000

[secret_ssh_visitor]
type = stcp
// stcp 的访问者
role = visitor
// 要访问的 stcp 代理的名字
server_name = secret_ssh
sk = abcdefg
// 绑定本地端口用于访问 ssh 服务
bind_addr = 127.0.0.1
bind_port = 6000

五、非服务器Windows系统开启多用户远程

首先先确定windows版本,被远程连接这是一个高级功能,起码要专业版以上(专业版,企业版,服务器版)才行。且windows默认情况下只能同时登录一个账号,并且手机连上电脑,电脑就会退出登录,被踢下线,这是因为,能让多个账号远程连接到一个电脑,这个是服务器版才该有的功能。想要达到能多人远程桌面的需求,需要进行配置,分为两步:

  • 配置本地组策略
    组策略编辑器,打开后,依次点击:
    管理模板-Windows组件-远程桌面服务-远程桌面会话主机-连接

    1. 双击右边的限制连接的数量,选择已启用,然后在下面选择你想开启的最大连接数,一般填个3都够用了.

    2. 双击右边的将远程桌面服务用户限制到单独的远程桌面服务会话,这里很多的教程会建议改成已禁用,但是我的建议是把这里改成已启用!!!

  • 开启多用户连接功能
    虽然设置了最大连用户数,但是我们的系统本质上装的并不是服务器版本,所以到目前为止我们还是不能够多用户同时连接的,要去github上下载RDPWrap这个软件(不要去csdn等地方下载来路不明的文件,直接去github原作者那下载是最好的).

解压之后我们右键选择用管理员依次运行这三个文件:

  • install.bat
  • update.bat
  • RDPConf.exe

如果你的系统版本太新,那你很可能箭头这里依然会显示[not supported]

如果你的系统非常新,或者更换了rdpwrap.ini文件仍然不支持,就需要到这个代码仓库的issues里面搜索你的系统版本(也就是上面的10.0.17763.771字眼),一般来说都会有人贴出新系统的配置信息,你只要把这个配置信息粘贴到刚刚那个rdpurap.ini文件的末尾就行了.例如下图:

到这里,所有的步骤就都结束了,现在可以让两个账户同时连接而不掉线了!且通过frp映射本地的3389端口到指定服务器上TCP端口上,以ip:端口的形式作为远程host连接。

# frp, 远程

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×