個人部落格主頁: xzajyjs.cn
frp是什麼
簡單地說,frp就是一個反向代理軟體,它體積輕量但功能很強大,可以使處於內網或防火牆後的裝置對外界提供服務,它支援HTTP、TCP、UDP等眾多協議。
實驗環境
- 一臺擁有公網IP的VPS(Linux)
- 需要進行內網穿透的實驗機Windows(暫不支援macOS)
三種服務樣例
1. ssh服務
在Linux上和Win上分別下載對應的最新Release版本(點我跳轉)
tar -zxv frp_0.38.0_linux_amd64.tar.gz
cd frp_0.38.0_linux_amd64
在我們的公網伺服器 Server A上配置 frps.ini
設定通訊埠
# frps.ini
[common]
bind_port = 7000
啟動服務
./frps -c frps.ini
接著配置我們Windows端的 frpc.ini
(這次我們實驗使用預設的ssh型別即可)
# 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 = 7890
server_addr 填入我們的公網IP
server_port 剛剛的通訊埠
local_ip 需要進行內網穿透的主機ip
local_port 是需要進行對映的埠
remote_port 是對映至公網伺服器的埠
配置好後開啟服務連線
.\frpc.exe -c frpc.ini
此時就可以通過公網IP+埠(7890)
連線我們windows的22埠了
2. http服務
配置vps的frps.ini
# frps.ini
[common]
bind_port = 7000
vhost_http_port = 8080
配置win的frpc.ini
# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000
[web]
type = http
local_port = 80
custom_domains = www.example.com
此時通過訪問公網IP+8080
埠訪問到我們部署在win上80埠的web服務
3. dns服務
配置frps.ini
# frps.ini
[common]
bind_port = 7000
配置frpc.ini
# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000
[dns]
type = udp
local_ip = 8.8.8.8
local_port = 53
remote_port = 6000
使用dig進行測試
dig @[公網IP] -p 6000 www.bing.com
其他
frp支援遠遠不止這些服務,當然也可以自定義服務。具體可閱讀手冊