frp
fast reverse proxy(即快速反向代理),可以把接在NAT上的本地设备的端口映射到公网上,让本地的设备也能像服务器一样被公网访问。
软件下载
无论服务端还是客户端,下载地址都是这里。点击直达
- 服务端: 具有公网ip的服务器
- 客户端: 需要被公网访问的本地设备
软件使用
下载下来的压缩包解压后,进入文件目录,主要关注以下四个文件:
- frps: 服务端的可执行文件
- frps.ini: 服务端的配置文件
- frpc: 客户端的可执行文件
- frpc.ini: 客户端的配置文件
进入软件目录后,运行软件命令如下
./frps -c frps.ini
运行客户端的命令
./frpc -c frpc.ini
frps.ini
服务端的配置很简单,bind_port定义监听哪个端口,为连接到这个端口的数据做转发。
1 | [common] |
但需注意服务器的防火墙要打开这个端口。,ubuntu系统可以用下面这个命令放行端口
sudo ufw allow “port-num”
“port-num”:填需要放行的端口号
可以通过下面这个命令查看当前防火墙策略,以检查自己要用到的端口没被防火墙过滤。
sudo ufw status
frpc.ini
客户端的配置如下:
1 | [common] |
注: 原来通过”local_ip:local_port”访问本地服务,现在可通过”server_addr:remote_port”访问原来的服务。所以记得服务器的防火墙打开remote_port来提供服务!
systemd自启动
为了让程序自己开机就运行,需要把该程序写入到systemd管理的服务(Unit)中。首先以frpc为例,通过如下命令创建Uint配置文件
vi /etc/systemd/system/frpc.service
在vi界面下按i进入insert模式,然后复制以下内容到这个文件中。
1 | [Unit] |
然后执行下面的命令重载Systemd
systemctl daemon-reload
现在通过如下命令就能启动frpc服务了
systemctl start frpc
输入如下命令使能frpc服务的开机自起
systemctl enable frpc
可以通过如下命令查看服务的运行状态
systemctl status frpc
下面是成功运行的截图:
- 在Loaded标签下我们可以看到enabled说明开机自起设置成功。
- 在Active标签下我们可以在到绿色的active(running)说明程序正常运行。
- 然后最底下我们可以看到程序的运行日志。