frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
必须材料:需要被穿透的内网机器,有公网IP的服务器一台,操作系统均为Centos7
服务端配置
下载软件压缩包
1
| wget https://github.com/fatedier/frp/releases/download/v0.48.0/frp_0.48.0_linux_amd64.tar.gz
|
解压压缩包
1
| tar -xvf frp_0.48.0_linux_amd64.tar.gz
|
将FRP核心文件移至/usr/local
1 2
| mkdir /usr/local/frp mv frp_0.48.0_linux_amd64/* /usr/local/frp/
|
FRP核心文件说明
xxxxxxxxxx systemctl enable glances.service # 开机自动启动glancessystemctl start glances.service # 启动glancessystemctl status glances.service # 查看glances状态systemctl restart glances.service # 重启glancesbash
注意:配置服务端时,可将frpc.ini和frpc删除,配置客户端时,可将frps.ini和frps删除。
注意:Frps是指 server
,在服务端上配置,Frpc是在客户端配置的。
服务端配置systemd
1
| vim /usr/lib/systemd/system/frp.service
|
写入以下内容,此处配置的为服务端,和客户端配置有所不同,请注意。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| [Unit] Description=The nginx HTTP and reverse proxy server After=network.target remote-fs.target nss-lookup.target
[Service] Type=simple ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini KillSignal=SIGQUIT TimeoutStopSec=5 KillMode=process PrivateTmp=true StandardOutput=syslog StandardError=inherit
[Install] WantedBy=multi-user.target
|
重载systemd的配置文件
systemd Frp指令说明
1 2 3 4 5 6
| systemctl start frp systemctl stop frp systemctl restart frp systemctl status frp systemctl enable frp systemctl disable frp
|
服务端ini文件配置和使用
frps.ini
1 2 3 4 5 6 7 8 9 10
| [common] bind_port = 7000 dashboard_port = 7001 dashboard_user = admin dashboard_pwd = 12345 token = 123
[ssh] listen_port = 6000
|
启动frp服务端
1 2
| systemctl start frp systemctl status frp
|
客户端配置
下载软件压缩包
1
| wget https://github.com/fatedier/frp/releases/download/v0.48.0/frp_0.48.0_linux_amd64.tar.gz
|
1
| tar -xvf frp_0.48.0_linux_amd64.tar.gz
|
将FRP核心文件移动至/usr/local
1 2
| mkdir /usr/local/frp mv frp_0.48.0_linux_amd64/* /usr/local/frp/
|
配置systemd
1
| vim /usr/lib/systemd/system/frp.service
|
写入以下内容,注意,以下内容和服务端是不一样的,请不要混淆
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| [Unit] Description=The nginx HTTP and reverse proxy server After=network.target remote-fs.target nss-lookup.target
[Service] Type=simple ExecStart=/usr/local/frp/frpc -c /usr/local/frp/frpc.ini KillSignal=SIGQUIT TimeoutStopSec=5 KillMode=process PrivateTmp=true StandardOutput=syslog StandardError=inherit
[Install] WantedBy=multi-user.target
|
重载systemd的配置文件
客户端的配置和使用
frpc.ini
1 2 3 4 5 6 7 8 9 10
| [common] server_addr = 远程frp服务器ip server_port = 远程frp服务器端口 token = 远程frp服务器token
[ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6000
|
启动frp客户端