1. frp介绍
frp是一种快速反向代理,可以帮助您将NAT或防火墙后的本地服务器公开到Internet。目前,它支持TCP和UDP,以及HTTP和HTTPS协议,请求可以通过域名转发到内部服务。frp还具有P2P连接模式。
2. frp如何部署
首先根据你的操作系统下载最新的源码包,然后将frps和frps.ini放到带有公网IP的服务器A中,将frpc和frpc.ini放到局域网中服务器B中(无法从公共互联网连接),最后通过配置两个ini文件分别启动服务器上的frps和frpc。
2.1 通过SSH访问局域网中的计算机
- 修改服务器A上的frps.ini文件,设置bind_port连接到frp客户端:
# frps.ini
[common]
bind_port = 7000
- 在服务器A上启动frps
./frps -c ./frps.ini
- 在服务器B上,修改frpc.ini配置文件,将frps的公网IP地址填写到server_addr
# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
请注意,local_port(在客户机上监听)和remote_port(在服务器上公开)用于进出frp系统的流量,而server_port在frps之间使用。
- 在服务器B上启动frpc
./frpc -c ./frpc.ini
- 从另一台机器,通过SSH访问服务器B(假定用户名是ubuntu)
ssh -oPort=6000 ubuntu@x.x.x.x
- 将frps和frpc设置成开机自启动
以frps为例,首先通过下面命令行配置frps.service
文件
[Unit]
Description=frps service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
#启动服务的命令(此处写你的frps的实际安装目录)
ExecStart=/your/path/frps -c /your/path/frps.ini
[Install]
WantedBy=multi-user.target
然后启动frps,命令行如下
sudo systemctl start frps
再打开开机自启动,命令如下
sudo systemctl enable frps
- 如果要重启应用,用该命令行
sudo systemctl restart frps
- 如果要停止应用,用该命令行
sudo systemctl stop frps
- 如果查看运行状态,用该命令行
sudo systemctl status frps
对于frpc的开机自启动设置,过程基本一样。
3. frp其他功能
1 通过自定义域访问LAN中的web服务
2 转发DNS查询请求
3 前向Unix域套接字
4 公开一个简单的HTTP文件服务器
5 为本地HTTP服务启用HTTPS
6 私下公开服务
7 P2P模式