01 需求與回顧
數月前我寫過一篇《使用FRP搭建內網穿透服務》的博客,當時用的frp版本為0.49.0
,如今隨著版本升級,配置方式發(fā)生了變化。官網文檔地址也發(fā)生了變化。
02 下載程序包
前往GitHub Releases頁面下載:
根據自己實際情況選擇,我的是x64的windows系統(tǒng),服務器也是x64架構。選擇圖中兩項。
解壓后,在windows端保存frpc
和frpc.toml
文件,在Linux端保存frps
和frps.toml
文件。
03 編輯.toml文件
3.1 編輯frps.toml
服務器端,編輯frps.toml
文件:
# frp服務的特定端口,防火墻也需放開該端口
bindPort = 7000
# 自定義的監(jiān)聽的端口,所有對服務器該端口訪問將被轉發(fā)到本地內網,做了反向代理可不處理防火墻放行
vhostHTTPPort = 86
3.2 編輯frpc.toml
客戶端,編輯frpc.toml
文件:
# 服務器的公網ip
serverAddr = "xxx.xxx.xxx.xxx"
# 7000端口 與frps.toml一致
serverPort = 7000
[[proxies]]
# 自定義名稱
name = "web"
# type這里寫http
type = "http"
# 本地端口,例如本地啟動的服務需要使用8000端口訪問,這里就寫8000
localPort = 8000
# 服務器的監(jiān)聽端口,與frps.toml一致
remotePort = 86
# 域名或服務器的公網ip,我做了反向代理,這里寫的公網ip
customDomains = ["xxx.xxx.xxx.xxx"]
04 啟動服務
4.1 啟動服務端
方式一:直接啟動
服務器端,傳統(tǒng)的啟動方式是直接敲命令:
./frps -c ./frps.toml &
這么寫,比較麻煩,而且如果要停止進程也比較麻煩,建議采用構建成服務的方式。
方式二:以服務方式啟動(推薦)
安裝systemd,通常情況下系統(tǒng)都帶得有,沒有的情況下使用如下命令安裝。
# 使用 yum 安裝 systemd(CentOS/RHEL)
yum install systemd
# 使用 apt 安裝 systemd(Debian/Ubuntu)
apt install systemd
創(chuàng)建frps.service服務
# 創(chuàng)建并編輯該文件
sudo vim /etc/systemd/system/frps.service
寫入內容
[Unit]
# 服務名稱,可自定義
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 啟動命令,改為實際存放frps的路徑
ExecStart = /path/to/frps -c /path/to/frps.toml
[Install]
WantedBy = multi-user.target
以服務的方式管理frps
# 啟動frp
sudo systemctl start frps
# 停止frp
sudo systemctl stop frps
# 重啟frp
sudo systemctl restart frps
# 查看frp狀態(tài)
sudo systemctl status frps
# 設置為開機自啟
sudo systemctl enable frps
4.2 啟動客戶端
服務端啟動之后,在windows客戶端的frpc所在目錄下,打開cmd命令行,輸入命令:
./frpc.exe -c ./frpc.toml1
即可啟動客戶端服務,此時就實現了內網穿透。
假設本地有一個服務需要使用http://127.0.0.1:8000
訪問,經過內網穿透后,訪問http://xxx.xxx.xxx.xxx:86
即可。
05 配置反向代理(可選)
使用npm做的反向代理,其他情況的反代參考即可。
修改圖中紅框處,此外,還需要做一些額外的設置才能訪問。
location / {
# 內網ip及端口
proxy_pass http://10.0.8.16:86;
# 這里寫frpc.toml中配置的域名或公網ip,即配置內容最下面那行,我寫的公網ip
proxy_set_header Host xxx.xxx.xxx.xxx;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
06 windows設置為默認啟動(可選)
6.1 創(chuàng)建啟動腳本
在frpc所在目錄下新建一個run.cmd
腳本,并寫入以下內容:
:@echo off
:%1(start /min cmd.exe /c %0 :&exit)
cd "C:\Users\xxx\Desktop\frp"
ping -n 10 127.1>nul
frpc.exe -c frpc.toml
其中第3行需要替換成自己的frpc所在目錄的絕對路徑。
第4行是做了一個延時執(zhí)行,避免剛開機時網絡不穩(wěn)定時連接失敗造成腳本退出。
6.2 設置為開機自啟
Win+Q搜索“任務計劃程序”
打開“任務計劃程序”。
在“操作”菜單中,選擇“創(chuàng)建基本任務…”。
按照向導設置任務。在“觸發(fā)器”步驟中,選擇“當計算機啟動時”。
在“操作”步驟中,選擇“啟動程序”,然后瀏覽選擇您的批處理文件。
在“完成”步驟之前,勾選“打開屬性對話框以進行進一步編輯”。
在屬性對話框中,可以選擇更多選項,比如“不管用戶是否登錄都要運行”和“以最高權限運行”。
該文章在 2023/12/29 0:45:45 編輯過