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模式