Linux系统部署FRP内网穿透服务器

frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。

翻译成人话就是可以通过公网ip来访问你的内网服务的技术!


1. 下载项目到本地

项目git地址: https://github.com/fatedier/frp
Snipaste_2020-04-27_09-48-05.png
根据自己的系统和cpu架构来选择下载版本,我这里下载的是linux-amd64的包


2. 配置服务器端

[[email protected] ~]# cd /opt/
[[email protected] opt]# ls
frp_0.32.1_linux_amd64.tar.gz
[[email protected] opt]# tar xf frp_0.32.1_linux_amd64.tar.gz 
[[email protected] opt]# mv frp_0.32.1_linux_amd64/ frp
[[email protected] opt]# cd frp/
[[email protected] frp]# ls
frpc  frpc_full.ini  frpc.ini  frps  frps_full.ini  frps.ini  LICENSE  systemd
[[email protected] frp]# cat frps.ini 
[common]
bind_port = 7000       //* 服务器监听的端口
token = zhenpishafa    //* 服务器端token认证,相当于暗号

配置systemd管理

[[email protected] frp]# pwd
/opt/frp
[[email protected] frp]# cat systemd/frps.service
[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/opt/frp/frps -c /opt/frp/frps.ini

[Install]
WantedBy=multi-user.target

启动服务并加入开机自启

[[email protected] frp]# cp systemd/frps.service /usr/lib/systemd/system/
[[email protected] frp]# systemctl daemon-reload 
[[email protected] frp]# systemctl start frps.service 
[[email protected] frp]# systemctl enable frps.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/frps.service to /usr/lib/systemd/system/frps.service.

Snipaste_2020-04-27_10-07-31.png


3. 配置客户端

[[email protected] opt]# mv frp_0.32.1_linux_amd64 frp
[[email protected] opt]# cd frp/
[[email protected] frp]# ls
frpc  frpc_full.ini  frpc.ini  frps  frps_full.ini  frps.ini  LICENSE  systemd
[[email protected] frp]# cat frpc.ini 
[common]
server_addr = 18.163.1xx.2xx    //* 服务端ip地址
server_port = 7000              //* 服务端端口
token = zhenpishafa             //* 暗号,和服务端保持一致

[ssh]
type = tcp                      //* 协议tcp 
local_ip = 127.0.0.1            //* 映射本地ip地址
local_port = 22                 //* 映射本地端口
remote_port = 6022              //* 服务端监听端口,也就是访问服务端ip:6022相当于访问127.0.0.1:22

[http]
type = tcp
local_ip = 127.0.0.1
local_port = 80
remote_port = 6088

配置systemd管理

[[email protected] frp]# pwd
/opt/frp
[[email protected] frp]# cat systemd/frpc.service
[Unit]
Description=Frp Client Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/opt/frp/frpc -c /opt/frp/frpc.ini

[Install]
WantedBy=multi-user.target

启动服务并加入开机自启

[[email protected] frp]# pwd
/opt/frp
[[email protected] frp]# cp systemd/frpc.service /usr/lib/systemd/system/
[[email protected] frp]# systemctl daemon-reload 
[[email protected] frp]# systemctl start frpc.service 
[[email protected] frp]# systemctl enable frpc.service

Snipaste_2020-04-27_10-26-52.png
启动成功之后会在服务端监听对应端口,一定要确保服务端端口是对外开放的!
Snipaste_2020-04-27_10-26-25.png


4. 效果验证

下面我们使用第三方服务器测试,来保证实验真实性。
Snipaste_2020-04-27_10-37-24.png
Snipaste_2020-04-27_10-38-48.png
速度测试,毕竟免费内网穿透的软件也不少,但是速度让人心痛!
同样使用第三方Windows服务器
Snipaste_2020-04-27_10-48-46.png
Snipaste_2020-04-27_10-47-44.png
经过测试,带宽差不多有10M!这个速度对于内网穿透来说已经很不错了!