利用VPS服务器搭建一个FRP内网穿透服务和Web服务穿透

目标:实现在公司用mstsc访问控制家里的电脑

附:基本配置参考:FRP服务端和客户端的基本配置_JohnGene的博客

准备资料

1、带有公网ip的Linux主机,下面假设1.2.3.4是固定外网ip

2、家用电脑联网,以下FRP客户端就是在家用电脑中操作的

FRP下载地址:Releases · fatedier/frp · GitHub

利用VPS服务器搭建一个FRP内网穿透服务和Web服务穿透插图

中文文档:frp/README_zh.md at master · fatedier/frp · GitHub
注意:frps是服务端程序,frpc是客户端程序

服务端配置

服务端程序 frp_0.30.0_linux_amd64.ter.gz 解压出来是这个样子:

利用VPS服务器搭建一个FRP内网穿透服务和Web服务穿透插图1

编辑frps.ini为以下内容:

[common] bind_port = 7000 #与客户端绑定的进行通信的端口 vhost_http_port = 80 #访问客户端web服务自定义的端口号

注意防火墙和安全组策略要开放自己设置的7000和80端口

进行到解压后的frp目录,然后通过./frps -c frps.ini命令即可启动服务端。

看到start frps success则说明成功

只用这种方式开启frps的话frps会占据了整个命令窗口,退出即停,所以接下来要考虑如何让它在后台运行并且开机自启。

新建 frps.service 文件:

vi /etc/systemd/system/frps.service

[Unit] Description=frps daemon After=syslog.target network.target Wants=network.target [Service] Type=simple ExecStart=/frp/frps -c /frp/frps.ini Restart= always RestartSec=1min [Install] WantedBy=multi-user.target

注意ExecStart中要配置成自己的路径.

授权:

chmod 777 /frp/frps

chmod 777 /frp/frps.ini

然后使用systemctl start frps即可启动frps, 用systemctl enable frps即可将frps设置为开机启动。

客户端的配置

frp_0.30.0_windows_amd64.zip解压出来后:

利用VPS服务器搭建一个FRP内网穿透服务和Web服务穿透插图2

配置frpc.ini:

[common] server_addr = 1.2.3.4 server_port = 7000 [mstsc] type = tcp local_ip = blogs.johngene.cn local_port = 3389 remote_port = 6999 [web] type = http #访问协议 local_port = 8080 #内网web服务的端口号 custom_domains = 1.2.3.4 #所绑定的公网服务器域名,一级、二级域名、ip地址都可以

注意防火墙和安全组策略要开启自己设置的6999、7000、80端口,remote_port 就是我们接下来要使用的端口

启动客户端:

利用VPS服务器搭建一个FRP内网穿透服务和Web服务穿透插图3

start proxy success成功

这时就可以是用mstsc访问了

利用VPS服务器搭建一个FRP内网穿透服务和Web服务穿透插图4

注意开启允许远程访问,防火墙要配置允许对应的数据或者直接关闭:

利用VPS服务器搭建一个FRP内网穿透服务和Web服务穿透插图5

windows客户端需要将frpc设置为开机自启[可选]

1.编写frpc的执行脚本

新建文本文档输入:

E:\FRPC\frpc.exe -c E:\FRPC\frpc.ini

这里的 frpc.exe 和 frpc.ini 的地址不要搞错了

保存后修改后缀名为.bat文件

2.右击我的电脑>管理>系统工具>任务计划程序>任务计划程序库>创建任务

利用VPS服务器搭建一个FRP内网穿透服务和Web服务穿透插图6

3.常规选项:名称、不管用户是否登录都要运行、使用最高权限运行

4.触发器:新建、开始任务选启动时其他默认,点确定

5.操作:新建操作、选启动程序、浏览选择bat脚本、确定

6.条件:全不选或者选择一个只有在以下网络时才启动,选任何网络

7.设置:选允许按需运行任务、如果过了计划开始时间,立即启动任务、如果任务失败,按以下频率重新启动(1分钟300次或者酌情填写)、如果此任务

已经运行选择请勿启动新实例

至此可以重启电脑测试了,注意重启后不要进入登录,直接用另一台机器用mstsc连接试试!

注意事项

如上安装FRP是不安全的,网络任何一台电脑都可以连接,下面分享个安全的配置方法:

客户端的协议采用stcp方式:

#服务端:[common] bind_port = 7000 bind_udp_port = 7001 token = abcdefg # bind_port:需要服务器开放端口 # bind_udp_port:提供udp协议的客户端使用,也需要服务器开放端口 # token:客户端连接服务端时需要的像密码一样的东西 #客户端A[被连接的机器]: [client_A] type=stcp sk=12345678 local_ip=blogs.johngene.cn local_port=3389 # type选择stcp # sk:连接A需要的秘钥 # local_ip:A机器的本地地址 # local_port:A机器的连接端口 #客户端B[连接A的机器]: [client_A_visitor] type=stcp role=visitor server_name=client_A sk=12345678 bind_ip=blogs.johngene.cn bind_port=789 # type选择stcp # role:角色visitor # server_name:A机器配置的名称client_A # sk:和A机器配置的sk保持一致 # bind_ip:B机器的本地地址 # bind_port:B机器随意一个不被占用的端口

最后B机器连接A机器需要在mstsc里面输入:localhost:789,或者127.0.0.1:789

如果要A和B相互连接,就得举一反三了,A里面配置client_B_visitor,B里面提供被A连接的接口client_B。

同样的,如果希望B机器对外公开,可以同时使用stcp协议和tcp协议,即:谁提供stcp接口谁就可以被stcp的visitor访问(注意秘钥相同),谁提供tcp接口谁就会被公开,任何电脑的远程输入ip地址和端口号就都可以访问。

Linux配置FRPC客户端

不安全的配置:

1、将下载的frp_0.31.1_linux_amd64.tar.gz解压出来,把里面的frpc和frpc.ini复制出来上传到Centos。

2、修改配置文件

[common] server_addr = 1.2.3.4 server_port = 1234 #tcp客户端可以和stcp客户端同时使用 [ssh] type = tcp local_ip = blogs.johngene.cn local_port = 22 remote_port = 8080

然后注意开放对应的1234和8080端口

3、利用ssh工具直接连接1.2.3.4:8080即可

安全的配置:

参考上面stcp握手方式!

自定义开启脚本与开机自启

1.编写脚本:

vi start-frpc.sh

#!/bin/bash nohup /opt/frpc/frpc -c /opt/frpc/frpc.ini &

2.编写service文件

cd /lib/systemd/system

vi frpc.service

[Unit] Description=xmr-staK After=network.target [Service] Type=forking ExecStart=/opt/frpc/start-frpc.sh PrivateTmp=true [Install] WantedBy=multi-user.target

Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

3.手工启动&开机自动启动服务

systemctl start frpc 启动 systemctl restart frpc 重启 systemctl stop frpc 停止 systemctl enable frpc 开机自启

原文链接:https://blog.csdn.net/JohnGene/article/details/122410584

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享