frp实现内网穿透
frp實現內網穿透
文章目錄
- frp實現內網穿透
- 1. 應用場景
- 2. frp介紹
- 3. 環境準備
- 4. 安裝
- 5. 注意事項
- 6. 參考鏈接
1. 應用場景
假設我在內網環境下開發了一個Web系統,現在客戶想要看看進度如何。有那么幾種方式:
第一種方式需要雙方安裝客戶端;第二種方式需要一個系統部署的過程,另外直接放到公網上也不安全;第三種需要路由器管理權限或者專門的信息管理人員;第四種方式可以使用的工具較多,如花生殼、netapp、金萬維等,均提供免費版與收費版,本文采用GitHub開源工具frp。
2. frp介紹
frp 是一個可用于內網穿透的高性能的反向代理應用,支持 tcp, udp 協議,為 http 和 https 應用協議提供了額外的能力,且嘗試性支持了點對點穿透。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-XXsqsGYT-1597591032352)(http://ww1.sinaimg.cn/large/005SzfLuly1ght0tq96w5j30es0codfu.jpg “frp架構圖”)]
在一臺具有公網IP的機器上安裝frp服務端,在需要穿透的內網機器上安裝frp客戶端,在服務端開放所需要的通訊端口,兩者建立連接之后,用戶就可以訪問frp服務端進而穿透內網。
3. 環境準備
- frp服務端(frps):一臺帶有公網IP的服務器
- frp客戶端(frpc):需要穿透的內網機器
- frp安裝包:根據機器環境選擇對應版本安裝,服務端與客戶端不需要保持環境一致,可以一邊是Linux環境,另一邊是Windows環境
4. 安裝
服務端環境是Centos 7,客戶端環境是Windows 10。
安裝frps
將下載好的安裝包frp_0.33.0_linux_amd64.tar.gz上傳到機器上,通過命令tar -zxvf frp_0.33.0_linux_amd64.tar.gz 進行解壓,使用命令cd切換到目錄frp_0.33.0_linux_amd64下,服務端只需要關注frps、frps.ini,對于frpc、frpc.ini可以直接刪掉以避免修改配置時混亂。修改frps.ini配置內容:
[common] # 服務器端端口 bind_port = 7000 # 客戶端連接憑證 token = 123456 # 服務器看板的訪問端口 dashboard_port = 7500 # 服務器看板賬戶 dashboard_user = root # 服務器看板密碼 dashboard_pwd = 123456 # 設置 http 訪問端口 vhost_http_port = 8080注意:服務端需要在防火墻放開相應的端口,供客戶端連接以及用戶訪問
安裝frpc
將下載好的frp_0.33.0_windows_386.zip解壓,客戶端只需要關注frpc.exe、frpc.ini。修改frpc.ini配置內容:
[common] # 服務端公網IP地址 server_addr = 45.76.**.*** # 服務端端口 server_port = 7000 # 連接憑證 token = 123456[web] type = http # 本地IP local_ip = 127.0.0.1 # 本地機器上 web 服務對應的端口 local_port = 9091 # 映射到公網的ip或者域名 custom_domains = 45.76.**.***啟動frps
./frps -c ./frps.ini
啟動frpc
./frpc.exe -c frpc.ini
服務啟動后,就可以通過custom_domains:vhost_http_port訪問本地Web服務了,按照上面配置的話,訪問地址就是45.76.**.***:8080
5. 注意事項
-
服務端與客戶端不需要保持環境一致,可以一邊是Linux,另一邊Windows
-
配置文件中注釋內容(#)不要和配置寫在一行
custom_domains = 45.76.**.*** # 與注釋內容寫在一行會導致配置不生效 -
客戶端不需要開放防火墻和端口,只需要服務端開放相應的端口
6. 參考鏈接
- 虛擬服務器設置指導
- frp中文文檔
- frp下載
- 使用frp做端口映射,將內網服務器發布到公網
- frp 路由穿透
- 使用FRP實現內網穿透,遠程訪問內網服務器
總結
- 上一篇: C#请求Post接口
- 下一篇: js 日期时间的格式化