使用 FRP 反向代理實現 Windows 遠程鏈接

互聯網普及率的日漸攀升與 IPv4 資源的持續減小,如今大部分家庭寬帶都不會分配公網 IP ,這使一些網絡應用的實現多了些困難,像我的的 NAS 和一些智能家居設備。對於分配公網 IP ,各地運營商的態度也不一樣,有的去找客服反應能夠要一個公網 IP ,還有些則直接告訴你每一年多少錢。這些狀況在 IPv6 普及以前都不會改善。html

前幾天看到了人民網的一條新聞:阿里雲聯合三大運營商全面提供IPv6服務。雖然如今網上有部分人對中國大力發展 IPv6 的目的持懷疑態度,認爲是出於監管的目的,但我對此仍是很支持的。首先我是很愛國的,按如今的話說叫「小粉紅」,這是精神層面的緣由。其次是網絡安全問題,這是本屆政府的戰略思想, IPv4 的發展咱們沒遇上,資源都在美國佬手中,咱們是受制於人的,雖然說沒像中興同樣。還有就是互聯網發展的勢頭太猛,中國是互聯網大國,互聯網+的國策一直推動,各類物聯網設備激增,像工業數據採集和智能家居設備,這都須要大量的 IP 地址。git

人民網北京6月21日電(記者孟哲)IPv6做爲下一代互聯網的技術基礎,對物聯網、車聯網、人工智能等新興產業的發展有着重大影響。昨日,阿里雲宣佈聯合三大運營商全面對外提供IPv6服務,但願能在2025年前幫助中國互聯網真正實現「IPv6 Only」。github

阿里雲聯合三大運營商全面提供IPv6服務shell

什麼是 FRP

FRP (Fast Reverse Proxy) 是一個可用於內網穿透的高性能的反向代理應用,支持 TCP , UDP , HTTP , HTTPS 協議。下載https://github.com/fatedier/frp/releaseswindows

(說到這裏,個人「互聯網傳輸助手」也是一款反向代理應用,用於在互聯網內安裝此應用的設備間傳輸數據。配合「互聯網傳輸助手-服務」程序,未分配公網 IP 的設備也可收發數據。「互聯網傳輸助手-服務」程序我暫時沒有發佈,由於有時會出現傳輸數據丟失的狀況,不知道是網絡的緣由仍是其餘,待我解決了再說。😂)安全

準備工做

1. 一臺擁有公網 IP 的設備(雲服務器、VPS ……)

這就是一臺反向代理服務器,做爲外網設備訪問內網設備的一座橋樑。

2. 域名(可選)

若是你不想輸入一大串 IP 地址的話,買個好記的域名吧。

安裝 FRP

這裏反向代理服務器使用的是阿里雲的雲服務器,安裝 Windows Server 2016 Datacenter 。內網要遠程鏈接的設備安裝的是 Windows 10 1803 。若是使用的是 Linux 系統的服務器,只是 FRP 的安裝過程不一樣,能夠百度一下其餘 FRP 的文章進行參考。考慮到若是隻是用服務器進行反向代理的話,沒有必要購買 Windows 服務器,由於相比於 Linux ,運行 Windows 的配置要高一些,價格也更貴一些。服務器

下載連接在文章的開頭已經給出,根據服務器的系統和處理器類型選擇,這裏選擇 frp_0.20.0_windows_amd64.zip ,下載完成後解壓。網絡

服務器(frps)

  1. 首先要配置一下入方向的安全組規則,須要穿透的端口得放行,我這裏直接開放了一個端口範圍,一勞永逸,各位按需開放便可。
  2. 接下來配置一下設置,解壓後有兩個配置文件,一個是 frps.ini 另外一個是 frps_full.ini 。 frps_full.ini 是全配置,裏面全部的配置都有,玩法不少,各位自行研究,這裏只挑幾個有用的。將下面配置代碼複製到 frps.ini 後保存。控制檯能夠輸入「服務器IP:端口號」進行訪問,如「1.2.3.4:7500」。
    ```ini
    [common]
    bind_port = 7000 ;要綁定的端口dom

    dashboard_user = admin ;控制檯的用戶名
    dashboard_pwd = password ;控制檯的密碼
    dashboard_port = 7500 ;控制檯的端口
    ```
  3. 而後把配置文件 frps.ini 與程序 frps.exe 複製到服務器。
  4. 最後使用 cmd 或 power shell 切換到相應目錄運行便可
    ini frps -c frps.ini
    power shell 要使用
    ini .\frps.exe -c frps.initcp

內網設備(frpc)

  1. 首先配置一下 frpc.ini
    ```ini
    [common]
    server_addr = 1.2.3.4 ;服務器的 IP
    server_port = 7000 ;服務器上設置的服務綁定端口

    [RDP] ;這個是反向代理的名稱,能夠隨意設置
    type = tcp ;RDP 是 TCP 協議的
    local_ip = 127.0.0.1 ;本機 IP
    local_port = 3389 ;遠程桌面的默認端口
    remote_port = 7001 ;外網訪問的端口
    ```
  2. 而後把配置文件 frpc.ini 與程序 frpc.exe 複製到內網設備。
  3. 最後使用 cmd 或 power shell 切換到相應目錄運行便可
    ini frpc -c frpc.ini
    power shell 要使用
    ini .\frpc.exe -c frpc.ini

內網設備開啓遠程桌面

右擊「此電腦」,選擇「系統」——「遠程設置」——「容許遠程鏈接至此電腦」

運行遠程桌面

在小娜或運行中輸入「mstsc」或「遠程桌面鏈接」,「計算機」中輸入「服務器 IP:外網訪問端口」,如「1.2.3.4:7001」。不出意外的話,是能夠從外網訪問到內網設備的。

綁定域名

  1. 這裏域名的服務商是阿里雲(萬網),在域名控制檯中對相應的域名選擇「解析」。跳轉到雲解析界面後點擊「添加記錄」。咱們須要添加一條類型爲 A 的記錄。記錄值爲服務器 IP。
  2. 配置 frpc.ini 。加一行 custom_domains = xxx.yourdomain.xxx 。如
    ini [RDP] ;這個是反向代理的名稱,能夠隨意設置 type = tcp ;RDP 是 TCP 協議的 local_ip = 127.0.0.1 ;本機 IP local_port = 3389 ;遠程桌面的默認端口 remote_port = 7001 ;外網訪問的端口 custom_domains = xxx.yourdomain.xxx

這樣就能使用 「你的域名:端口」 進行遠程桌面鏈接了。

總結

FRP 的玩法不少,若是你的路由器是智能路由器的話,能夠將 FRP 部署到你的路由器上,也能夠搭建 NAS ,甚至將內網部署的 WEB 應用映射到外網(固然,在國內這是違法的,有條件的話仍是要備案一下)等等。 但體驗指數上完徹底全取決於你的雲服務器寬帶。 內網穿透,反向代理,都只是彌補沒有公網 IP 的遺憾罷了。

相關文章
相關標籤/搜索