1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 利用VPS服务器搭建一个FRP内网穿透服务和Web服务穿透

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

时间:2024-03-14 11:03:42

相关推荐

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

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

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

准备资料

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

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

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

中文文档:frp/README_zh.md at master · fatedier/frp · GitHub

注意:frps是服务端程序,frpc是客户端程序

服务端配置

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

编辑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 daemonAfter=syslog.target network.targetWants=network.target[Service]Type=simpleExecStart=/frp/frps -c /frp/frps.iniRestart= alwaysRestartSec=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解压出来后:

配置frpc.ini:

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

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

启动客户端:

start proxy success成功

这时就可以是用mstsc访问了

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

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

1.编写frpc的执行脚本

新建文本文档输入:

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

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

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

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

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

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

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

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

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

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

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

注意事项

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

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

#服务端:[common]bind_port=7000bind_udp_port=7001token=abcdefg# bind_port:需要服务器开放端口# bind_udp_port:提供udp协议的客户端使用,也需要服务器开放端口# token:客户端连接服务端时需要的像密码一样的东西#客户端A[被连接的机器]:[client_A]type=stcpsk=12345678local_ip=local_port=3389# type选择stcp# sk:连接A需要的秘钥# local_ip:A机器的本地地址# local_port:A机器的连接端口#客户端B[连接A的机器]:[client_A_visitor]type=stcprole=visitorserver_name=client_Ask=12345678bind_ip=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.4server_port = 1234#tcp客户端可以和stcp客户端同时使用[ssh]type = tcplocal_ip = local_port = 22remote_port = 8080

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

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

安全的配置:

参考上面stcp握手方式!

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

1.编写脚本:

vi start-frpc.sh

#!/bin/bashnohup /opt/frpc/frpc -c /opt/frpc/frpc.ini &

2.编写service文件

cd /lib/systemd/system

vi frpc.service

[Unit]Description=xmr-staKAfter=network.target[Service]Type=forkingExecStart=/opt/frpc/start-frpc.shPrivateTmp=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 开机自启

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。