1. 程式人生 > 實用技巧 >frp實現內網穿透,實現誇伺服器訪問

frp實現內網穿透,實現誇伺服器訪問

轉至:https://www.jianshu.com/p/93bf511ea72e

frp實現內網穿透(centos7)

00天火00 12017.03.28 16:20:25字數 837閱讀 31,555

我的部落格:https://blog.thuol.com

說明

參考網路上其他人文章。將他人技術文章親自測試並總結補充。
實現內網穿需要有一臺公網伺服器,域名。(本文將公網伺服器稱為服務端,內網伺服器稱為客戶端)
(需要開啟相關的埠。相關埠沒開通,訪問就會失敗。)

frp下載地址:http://getfrp.yzxx-soft.com/
https://github.com/fatedier/frp
本文使用軟體:frp_0.8.1_linux_amd64.tar.gz

本文使用系統:centos7(公網一臺,內網一臺),其他系統配置類似
本文使用a.com代替實際域名,10.10.10.10代替實際公網ip,實際中請使用自己的域名和ip並解析到服務端
主域名:a.com
公網伺服器ip:10.10.10.10
內網伺服器ip:192.168.198.229

centos7 frp安裝和配置(其他系統配置類似)

  1. 將軟體下載到伺服器和客戶端(服務端和客戶端相同)
    解壓frp軟體包
tar -zxvf frp_0.8.1_linux_amd64.tar.gz

進入解壓後的資料夾

cd frp_0.8.1_linux_amd64

檔案說明

frps.ini: 服務端配置檔案

frps: 服務端軟體
frpc.ini: 客戶端配置檔案
frpc: 客戶端軟體

  1. 修改服務端配置
    修改服務端frps.ini
vi frps.ini

修改如下內容(由於本文為測試,所以將原配置檔案清空),或對照如下修改。

[common]
bind_port = 7000
vhost_http_port = 80
[ssh]
listen_port = 6000
auth_token = 123
[web]
type = http
custom_domains = test1.a.com
auth_token = 123
[web2]
type = http
custom_domains = test2.a.com
auth_token = 123

開啟服務端服務(在frp_0.8.1_linux_amd64目錄下)

./frps -c ./frps.ini

服務端出現如下啟動成功

配置說明

[common]必須設定
bind_port是自己設定的frp服務端埠
vhost_http_port是自己設定的http訪問埠
[ssh]ssh反向代理(不是必須設定)
listen_port是自己設定的ssh訪問埠
auth_token用於身份認證(以下皆是)。
[web]http反向代理[]裡的內容可以自己設定,但是客戶端和服務端必須要對應(如[aaa],[bbb]);
type為服務型別,可以設為http,https
custom_domains為要對映的域名,記得域名的A記錄要解析到外網主機的IP。
[web2]同上(可設定多個)

  1. 修改客戶端配置(win系統找到相應配置檔案進行類似配置)
    修改服務端frpc.ini
vi frpc.ini

修改如下內容(由於本文為測試,所以將原配置檔案清空),或對照如下修改。

[common]
server_addr = 10.10.10.10
server_port = 7000
auth_token = 123
[ssh]
local_port = 22
[web]
type = http
local_port = 80
[web2]
type = http
local_port = 8080

開啟客戶端服務(在frp_0.8.1_linux_amd64目錄下)

./frpc -c ./frpc.ini

客戶端出現如下啟動成功

配置說明

[common]必填
server_addrfrp服務端的ip(也就是外網主機的IP)
server_portfrp服務端的bind_prot。
[ssh]
local_port客戶端ssh埠。
[web]
type對應服務端配置
local_port客戶端訪問埠。
[web2]同上

測試(本文中客戶端已經裝了Nginx服務)

  1. http測試
    訪問內網http://192.168.198.229

    訪問域名http://test1.a.com
  2. ssh連線內網機器測試(linux系統)
    連線設定



    連線結果


  3. win系統也可通過tcp遠端桌面連線,只需要把客戶端埠改成win遠端預設埠:3389。

後臺啟動(使用nohup,以服務端為例子,客戶端類似)

啟動(進入frp目錄)

nohup ./frps -c ./frps.ini &     #啟動服務端 帶&符號

啟動後會返回相關的pid
關閉

kill 19619                     #輸入你係統中返回的pid
kill -9 $(pidof frps)          #或者使用這個命令關閉,$(pidof frps)中frps為程序名稱客戶端為frpc

檢視狀態

netstat -antpl                 #看到7000埠說明後臺啟動成功(配置檔案中配置的frp服務埠)
12人點贊 linux,win,伺服器