內網穿透神器,ssh 連接內網電腦與微信開發本地調試

你開發微信公眾號時是怎麼調試的呢?idea 遠程調試?打印 log 調試?你公司電腦你是怎麼遠程的呢?teamviewer?你知道嗎,你可以通過 frp 連接內網電腦,暴露內網服務,簡直不要太爽。


關注我,帶你一起玩轉 Linux,記得關注 + 收藏哦。

frp 是我所見過 的 內網穿透解決方案裡 我最喜歡的一個,功能足夠強大,可以 穿透 ssh 和 web,並支持 kcp 協議。在 github 擁有將近 30K star,足見其實力吧。下面迴歸主題,使用 frp 穿透 ssh 和 web 服務。

frpc.ini 配置


[common]
server_addr = xxx.xxx.xxx.xxx
server_port = 7000
protocol = kcp

如上,是 frp 客戶端的基礎配置,如果要配置 ssh 或者 web 服務,你繼續追加即可。

frp 實現 ssh 穿透

frpc.ini 配置如下:

frp - 內網穿透神器,ssh 連接內網電腦與微信開發本地調試

純文本內容為:

[common]

server_addr = xxx.xxx.xxx.xxx

server_port = 7000

protocol = kcp


[ssh]

type = tcp

local_ip = 127.0.0.1

local_port = 22

remote_port = 6000

這裡的 ssh 可以換作別的名稱,不影響使用,但是不能重複哦,重複註冊不成功。

frps.ini 配置如下:

[common]
kcp_bind_port = 7000
vhost_http_port = 8080
subdomain_host = kpromise.top

這裡,subdomain_host 指你的主域名,7000 是 frp 主程序的監聽地址,需要跟上文中 server_port 對應。8080 是 http 的監聽端口。

frp 穿透內網 web 服務

frpc.ini 配置如下:

frp - 內網穿透神器,ssh 連接內網電腦與微信開發本地調試

純文本內容為:

[common]

server_addr = xxx.xxx.xxx.xxx

server_port = 7000

protocol = kcp


[ssh]

type = tcp

local_ip = 127.0.0.1

local_port = 22

remote_port = 6000


[customerdev]

type = http

local_port = 8182

subdomain = customerdev

frps.ini 配置如上,這裡不再贅述。之後你可以 frps -c frps.ini 以及 frpc -c frpc.ini 來啟動客戶端和服務端,啟動後,你就可以通過 customerdev.kpromise.top:8080 來 訪問內網服務了。如果你不想要 域名後面的 8080,那就只能通過 nginx 轉發了,即 你請求 customerdev.kpromise.top 時,nginx 將流量轉發到 本地的 8080 端口,配置如下:

frp - 內網穿透神器,ssh 連接內網電腦與微信開發本地調試

純文本內容為:

server {

listen 80;

server_name customerdev.kpromise.top;

server_tokens off;

return 301 https://$host$request_uri;

}


server {

listen 443 ssl;

server_name customerdev.kpromise.top;

charset uft-8;


location / {

proxy_pass http://localhost:8080;

gzip off;

proxy_redirect off;

proxy_http_version 1.1;

proxy_set_header Host $http_host;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Forwarded-Proto $scheme;

}

ssl_certificate /etc/letsencrypt/live/kpromise.top/fullchain.pem; # managed by Certbot

ssl_certificate_key /etc/letsencrypt/live/kpromise.top/privkey.pem; # managed by Certbot

}

這樣子,你還直接給 加了 https 呢,何樂而不為!記住一點 [customerdev] 這裡 customerdev 是服務名稱,你隨便寫,但是不能重複。而 common 部分你就不要改了,反正我沒改!可以多個 client 連接 同一個 server,除了 common 外,其餘 服務名稱不得重複。另外,還支持 流量壓縮與加密,以及客戶端服務端鑑權。鑑權呢,服務端和客戶端的 common 配置中的 token 參數一致則身份驗證通過。壓縮與加密需要在 client 端指定,且只能在服務配置下,比如:


[ssh]
type = tcp
local_port = 22
remote_port = 6000
use_encryption = true
use_compression = true

壓縮後可有效加快傳輸速度。


是不是很簡單,關注我,我們一起進步,記得 關注 + 收藏哦,有問題評論區見。


分享到:


相關文章: