frp 內網穿透配置
配置
取得 frp
$ wget https://github.com/fatedier/frp/releases/download/v0.34.3/frp_0.34.3_linux_amd64.tar.gz
解壓縮
$ tar zxvf frp_0.34.3_linux_amd64.tar.gz
將 frp 移至系統 (可選的)
$ sudo mv frp_0.36.2_linux_amd64/ /etc/frp/ # frp 移至系統 etc 目錄下
$ sudo ln -s /etc/frp/frps /usr/bin #複製執行檔到可執行路徑
$ sudo ln -s /etc/frp/systemd/frps.service /etc/systemd/system #符號連結到開機服務
$ sudo systemctl enable frps.service #啟動開機時執行服務
伺服器端設定檔配置
編輯設定檔
$ sudo vi /etc/frp/frps.ini
設定檔
[2021/07/20 Tue 01:22] ~ $ cat /etc/frp/frps.ini
[common]
authentication_method = token #客戶端與伺服器端驗證方式
token= Js5h9Hk62UuSd8 #驗證身分的值,客戶端需與伺服器端相同
bind_port = 7000 #對外的伺服器連接埠
subdomain_host = www.example.com #子域名,請輸入已擁有的域名
vhost_http_port = 80 #定義 http 連接埠(伺服器端),內網客戶端的 http 埠將會被暴露到此連接埠
vhost_https_port = 443 #定義 https 連接埠(伺服器端),內網客戶端的 https 埠將會被暴露到此連接埠
dashboard_addr = 0.0.0.0 #定義儀錶板IP
dashboard_port = 7500 #定義儀錶板連接埠
dashboard_user = admin #定義儀錶板使用者名稱
dashboard_pwd = passwd #定義儀錶板使用者密碼
啟動 frps 伺服器
$ sudo frps -c /etc/frp/frps.ini &
用戶端設定檔配置
[common]
server_addr = xxx.xxx.xxx.xxx #frp 伺服器端的對外 IP
server_port = 7000 #frp 伺服器端監聽的連接埠
authentication_method = token #客戶端與伺服器端驗證方式
token= Js5h9Hk62UuSd8 #驗證身分的值,客戶端需與伺服器端相同
#[ssh] #這裡的 ssh 是代理名稱,代理名稱不可在同設定檔重複配置兩次;將內網 ssh 埠暴露到公網伺服器端
#type = tcp #代理方式
#local_ip = 127.0.0.1 #本機 IP,也可以代理區域網路內的其他裝置
#local_port = 22 #欲暴露的內網連接埠
#remote_port = 6000 #指定要暴露到伺服器端的埠號
[web-http] #代理名稱,代理名稱不可在同設定檔重複配置兩次;將內網 http 埠暴露到公網伺服器端
type = http #代理協定
local_port = 8080 #欲暴露的內網連接埠,將被映射到伺服器端指定的 http 連接埠
custom_domains = www.example.com #連結到已有的域名
[web-https] #代理名稱,代理名稱不可在同設定檔重複配置兩次;將內網 https 埠暴露到公網伺服器端
type = https #代理協定
local_port = 8443 #欲暴露的內網連接埠,將被映射到伺服器端指定的 https 連接埠
custom_domains = www.example.com #連結到已有的域名
#研究中,目前下方兩項不具參考價值
#[secret_rdp]
#type = stcp #代理協定
#sk = Ck7Cx13Hq329tY #sk 密鑰
#local_ip = 127.0.0.1
#local_port = 22 #欲暴露的內網連接埠
#[secret_rdp_2]
#type = stcp #代理協定
#sk = Ck7Cx13Hq329tY #sk 密鑰
#local_ip = 127.0.0.1 #本機 IP,也可以代理區域網路內的其他裝置
#local_port = 8022 #欲暴露的內網連接埠
#研究中,目前上方兩項不具參考價值
下面是伺服器端內的客戶端設定,暫存用,目前不具參考價值:
[common]
server_addr = xxx.xxx.xxx.xxx #frp 伺服器端的對外 IP
server_port = 7000 #frp 伺服器端監聽的連接埠
authentication_method = token #客戶端與伺服器端驗證方式
token= Js5h9Hk62UuSd8 #驗證身分的值,客戶端需與伺服器端相同
#研究中,目前下方幾項不具參考價值
#[secret_rdp]
#type = stcp #代理方式
#role = visitor
#sk = Ck7Cx13Hq329tY
#server_name = secret_rdp
#local_ip = 127.0.0.1
#local_port =
#custom_domains = www.example.com #連結到已有的域名
#[secret_rdp_2]
#type = stcp #代理方式
#role = visitor
#sk = Ck7Cx13Hq329tY
#server_name = secret_rdp_2
#local_ip = 127.0.0.1
#local_port =
#custom_domains = www.example.com #連結到已有的域名
#[web-http]
#type = http
#local_port =
#custom_domains = www.example.com #連結到已有的域名
#[web-https]
#type = https
#local_port =
#custom_domains = www.example.com #連結到已有的域名
#研究中,目前上方兩項不具參考價值
/etc/frp/frpc.ini (END)
啟動 frpc 用戶端,由於我的用戶端是 termux,且 frp 放置於家目錄.frp
下,則:
~/.frp/frpc -c ~/.frp/frpc.ini &