利用frp、Linux服务器,内穿windows本地端口;配置frp的点对点式安全的访问。

下载:https://github.com/fatedier/frp/releases

官方文档:https://gofrp.org/docs/

项目开源地址:https://github.com/fatedier/frp


本方案是利用一台Linux服务器做流量中转,将本地windows端口,或只有在本地环境能够访问的网站,穿透到公网上,以提供访问。


服务端在以上链接下载响应的包,然后进行配置,此程序服务端和客户端均使用一个包。

服务端配置文件 frps.ini 

//连接信息
[common]
bind_addr=0.0.0.0
bind_port = 7000
auto_token= passwd
//web登陆信息
dashboard_port = 2021
dashboard_user = root
dashboard_pwd = root


服务端启动

nohup ./frps -c frps.ini >/dev/null 2>&1 &


服务端状态监控可登陆:xxx:2021

输入配置的账号密码即可


被服务端配置:

[common]
server_addr=1.1.1.1  //服务端IP
server_port=7000
auto_token=passwd

[3389] //标签,不可重复
type = tcp
local_ip = 127.0.0.1
local_port = 3389  //本地端口
remote_port = 3389  //远程端口,不可冲突


被服务端启动(参考本地路径,CMD窗口)

D:\frp_0.37.0_windows_386\frpc.exe -c D:\frp_0.37.0_windows_386\frpc.ini


访问方式为:1.1.1.1:3389


以上内容可以让整个互联网访问此内部端口,较为不安全。

用下面的方法可以安全的访问内网端口

使用 stcp(secret tcp) 类型的代理可以避免让任何人都能访问到要穿透的服务,但是访问者也需要运行另外一个 frpc 客户端。


在需要被连接到内网的机器上部署 frpc,且配置如下:

[common]
server_addr=1.1.1.1  //服务端IP
server_port=7000
auto_token=passwd

[secret_ssh]  //标签信息,一会也需要验证 
type = stcp 
sk = abcdefg //身份验证信息
local_ip = 127.0.0.1 
local_port = 22


被访问者配置frpc如下:

[common]
server_addr=1.1.1.1  //服务端IP
server_port=7000
auto_token=passwd
tls_enable = true  //部分环境下连接可能需要此配置

[secret_ssh_visitor] 
type = stcp 
role = visitor   //访问者身份 'server' or 'visitor'
server_name = secret_ssh   //标签信息,需要与被连接PC一致
sk = abcdefg     //身份验证信息
bind_addr = 127.0.0.1   //绑定本地IP,没理解为啥要写这个
bind_port = 6000  //绑定本地端口

启动frpc,访问本地6000端口即可


windows启动方式均与上方相同。

bat脚本范例:

D:\frp_0.37.0_windows

.\frpc.exe -c .\frpc.ini
pause

---

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。