1. 程式人生 > 實用技巧 >frp實現內網穿透

frp實現內網穿透

frp簡介

frp是一個能進行內網穿透的高效能反向代理應用,支援TCP、UDP、HTTP、HTTPS等多種協議。通過在具有公網IP的節點上部署frp服務端,可以將內網服務穿透到公網。

準備工作

阿里雲伺服器(Ubuntu18.04)

內網機器(Ubuntu18.04)

frp下載

通過SSH訪問內網機器

  1. 在阿里雲伺服器上部署frps,修改frps.ini檔案。

    [common]
    bind_port = 7000
    
  2. 在需要被訪問的內網機器上部署frpc,修改frpc.ini檔案。

    [common]
    server_addr = x.x.x.x
    server_port = 7000
    
    [ssh]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 22
    remote_port = 6000
    

    local_ip和local_port配置為本地需要暴露到公網的服務地址和埠(ssh服務預設是22埠)。remote_port表示在frp服務端監聽的埠,訪問此埠的流量將會轉發到本地服務對應的埠。

    注意事項:

    • bind_port和server_port可任意設定,但需保持一致
    • server_addr為阿里雲伺服器公網IP
    • remote_port可任意設定,不與server_port相同即可
    • 在阿里雲實例安全組中開放設定的server_port和remote_port埠號
  3. 在阿里雲伺服器啟動frps

    ./frps -c ./frps.ini
    
  4. 在內網機器上啟動frpc

    ./frpc -c ./frpc.ini
    
  5. 通過ssh訪問內網機器

    ssh [內網機器系統使用者名稱]@[阿里雲公網IP地址] -p [remote_port]
    

ps:frps和frpc啟動可設定後臺不掛斷執行(藉助nohup和&)或將命令寫進開機啟動項中

通過自定義域名訪問內網的web服務

  1. 在阿里雲伺服器上部署frps,修改frps.ini檔案。

    [common]
    bind_port = 7000
    vhost_http_port = 8080
    
  2. 在需要被訪問的內網機器上部署frpc,修改frpc.ini檔案。

    [common]
    server_addr = x.x.x.x
    server_port = 7000
    
    [ssh]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 22
    remote_port = 6000
    
    [web]
    type = http
    local_port = 6006
    custom_domains = 域名或IP
    

    注意事項:

    • local_port為內網機器web服務監聽的埠,根據對應需求更改,例如tensorboard的預設埠為6006。
    • custom_domains可為域名或IP地址,例如127.0.0.1。
    • 在阿里雲實例安全組中開放設定的vhost_http_port埠號
  3. 在本地瀏覽器訪問域名或IP:local_port即可訪問內網機器上[web]local_port埠的服務