<ul id="i4ug0"></ul>
  • <ul id="i4ug0"></ul>
    <ul id="i4ug0"></ul> <ul id="i4ug0"><sup id="i4ug0"></sup></ul><ul id="i4ug0"></ul>
  • 智宇物聯(lián) 專注于提供高穩(wěn)定、高速率的三網(wǎng)物聯(lián)網(wǎng)卡

    阜陽使用frp實(shí)現(xiàn)內(nèi)網(wǎng)穿透管理物聯(lián)網(wǎng)設(shè)備

    • 作者:智宇物聯(lián)
    • 發(fā)表時(shí)間:2022年10月14日
    • 來源:智宇物聯(lián)

    1. 內(nèi)網(wǎng)穿透的概念及方法

    由于IP資源數(shù)量限制以及防火墻等原因,一般來說,我們的物聯(lián)網(wǎng)設(shè)備和私有服務(wù)器都是沒有公網(wǎng)IP地址的,因此也無法通過外部網(wǎng)絡(luò)直接訪問,只有公有云服務(wù)商或者專線接入的用戶,才有有限的獨(dú)立的公網(wǎng)IP地址可供訪問。在這種情況下,如果我們要通過個(gè)人電腦、私人服務(wù)器提供網(wǎng)絡(luò)服務(wù),或者需要從公共網(wǎng)絡(luò)訪問并管理我們的物聯(lián)網(wǎng)設(shè)備,就需要有內(nèi)網(wǎng)穿透的功能,使我們的服務(wù)器與物聯(lián)網(wǎng)設(shè)備提供的服務(wù)(如文件服務(wù)、FTP、網(wǎng)站服務(wù)或者SSH遠(yuǎn)程管理功能等)可以穿過防火墻,能夠從公共網(wǎng)絡(luò)進(jìn)行訪問。

    實(shí)現(xiàn)跨網(wǎng)絡(luò)訪問的方法較多:

      • 如果單純要進(jìn)行windows桌面遠(yuǎn)程管理,可以使用遠(yuǎn)程桌面TeamViewer工具,但該軟件為商用軟件,并且功能有很多限制
      • 也可以使用商用的蒲公英或者其他VPN工具搭建VPN,通過虛擬化的本地網(wǎng)絡(luò)進(jìn)行訪問
      • 也可以使用商用的花生殼軟件提供的內(nèi)網(wǎng)穿透功能,但是價(jià)格昂貴并且功能限制較多
      • 此外,可以通過開源工具ngrok、frp等進(jìn)行內(nèi)網(wǎng)穿透服務(wù)器搭建,由于ngrok自版本2之后不再開源,本文選擇了目前更為流行的frp工具。

    要實(shí)現(xiàn)內(nèi)網(wǎng)穿透,你需要有一臺擁有公有IP地址的服務(wù)器,在目前云服務(wù)器價(jià)格持續(xù)走低的情況下,擁有一臺獨(dú)立的低配置的云服務(wù)器對個(gè)人來說并非難事,其成本也遠(yuǎn)低于其他商用軟件如花生殼等。本文以下步驟均以擁有固定IP地址的公網(wǎng)云服務(wù)器以及在局域網(wǎng)內(nèi)的服務(wù)器為前提,其中,云服務(wù)器安裝了Ubuntu18.04版本的linux操作系統(tǒng),本地私有服務(wù)器安裝了Windows 10系統(tǒng),為了充分模擬各種情況,本地服務(wù)器還通過WSL運(yùn)行了Ubuntu18.04系統(tǒng)。拓?fù)浜唸D如下:


    使用frp實(shí)現(xiàn)內(nèi)網(wǎng)穿透管理物聯(lián)網(wǎng)設(shè)備


    2. frp安裝與基礎(chǔ)配置

    frp的安裝與配置很簡單,在frp項(xiàng)目官網(wǎng)(或者從我們的frp國內(nèi)鏡像)的release頁面下載需要的已經(jīng)編譯好的二進(jìn)制文件,注意,下載好的frp是包括服務(wù)器frps和客戶端frpc的,在服務(wù)端只需要啟動frps而在客戶端只需要啟動frpc,在我們的服務(wù)器和客戶端操作分別如下。

    由于一般云服務(wù)器供應(yīng)商對服務(wù)器端口均進(jìn)行了限制,為了保證本文后續(xù)配置順利進(jìn)行,需要在云服務(wù)器安全組中開放以下端口,并在后續(xù)要提供其他服務(wù)時(shí)根據(jù)情況進(jìn)行開放,如果服務(wù)器自身也啟用了防火墻服務(wù),那么下列端口還需要在服務(wù)器防火墻配置中再配置一次以予以放行:

    • 7000 用于frp服務(wù)器和客戶端之間進(jìn)行數(shù)據(jù)交換
    • 8000 用于提供http服務(wù)
    • 7019~7021 用于提供被動式的ftp服務(wù)
    • 7022 用于提供ssh遠(yuǎn)程管理服務(wù)
    • 7389 用于windows客戶端遠(yuǎn)程桌面管理

    本文后續(xù)配置中均假設(shè)云服務(wù)器ip地址為123.123.123.123,實(shí)際配置中需要根據(jù)真實(shí)ip地址修改,同時(shí),本位假設(shè)已經(jīng)擁有一個(gè)域名通過A記錄解析至123.123.123.123,因此在配置時(shí)均通過域名代替ip地址。這樣的好處是如果服務(wù)器進(jìn)行更換,不需要再在每臺客戶端中配置并更換服務(wù)器的ip地址。

    2.1 服務(wù)器端frp安裝與配置(frps)

    通過ssh方式遠(yuǎn)程連接云服務(wù)器后,通過以下命令下載并安裝frps。

    //下載安裝包
    wget https://github.com/fatedier/frp/releases/download/v0.34.3/frp_0.34.3_linux_amd64.tar.gz
    //解壓安裝包
    tar -xvf frp_0.34.3_linux_amd64.tar.gz
    //使用nano或者vim打開解壓后的frps.ini文件并做以下最簡單的配置以供測試
    # frps.ini
    [common]
    bind_port = 7000
    //通過以下命令啟動frps
    ./frps -c ./frps.ini

    上述啟動方式僅用于調(diào)試,在斷開ssh連接后服務(wù)會自動關(guān)閉,服務(wù)器與客戶端自啟動方式見后文詳細(xì)配置說明。

    2.2 Windows 客戶端frp安裝與訪問(frpc)

    下載windows版本客戶端并解壓,打開 frpc.ini 文件進(jìn)行配置。

    • 在server_addr部分輸入域名或者ip地址均可,這里使用域名
    • 為了進(jìn)行測試,需要windows打開遠(yuǎn)程管理服務(wù)功能,在windows文件資源管理器中,右鍵點(diǎn)擊此電腦選擇“管理”,選擇“高級系統(tǒng)設(shè)置”,選擇“遠(yuǎn)程”,選擇“允許遠(yuǎn)程連接到此電腦”。此功能僅用于windows 10專業(yè)版及以上,家庭版是不具備此功能的,可以通過后續(xù)方法搭建ftp服務(wù)器進(jìn)行測試。
    # frpc.ini
    [common]
    server_addr = 
    server_port = 7000
    
    [rdp]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 3389
    remote_port = 7389

    在當(dāng)前目錄下打開 windows powershell 輸入以下命令以啟動客戶端,如果服務(wù)器連接成功,會有 start proxy successful 字樣提醒:

    > .\frpc.exe -c .\frpc.ini

    在第三臺電腦上,通過快捷鍵 win+R 啟動命令提示框,輸入 mstsc ,輸入 :7389 輸入用戶名和密碼(安裝了frpc客戶端電腦的用戶名和密碼),即可遠(yuǎn)程打開windows客戶端電腦進(jìn)行管理。可以看到,在這種條件下,第三方電腦通過公網(wǎng)云服務(wù)器的7389端口,訪問了windows客戶端的3389遠(yuǎn)程桌面端口,實(shí)現(xiàn)了windows電腦端口的內(nèi)網(wǎng)穿透功能。

    2.3 Linux客戶端frp安裝與訪問(frpc)

    在windows10服務(wù)器的WSL子系統(tǒng)下(或者獨(dú)立的Linux系統(tǒng)亦可),安裝frp客戶端并進(jìn)行訪問。需要注意的是,windows10的Ubuntu子系統(tǒng),默認(rèn)沒有打開root用戶遠(yuǎn)程ssh權(quán)限,需要先進(jìn)性設(shè)置。

    //打開ssh配置文件
    sudo nano /etc/ssh/sshd_config
    
    //修改以下位置,然后保存:
    Port = 22 # 去掉前面的#號,啟用22端口
    ListenAddress 0.0.0.0       #去掉前面的#號
    PasswordAuthentication yes # 將 no 改為 yes 表示使用帳號密碼方式登錄
    PermitRootLogin yes #允許root用戶遠(yuǎn)程登錄
    
    //重啟sshd服務(wù):
    dpkg-reconfigure openssh-server     #用于安裝RSA_KEY,選擇使用現(xiàn)有配置文件keep old...
    sudo service ssh restart        #重啟SSH服務(wù)
    sudo service ssh status         #查看SSH服務(wù)狀態(tài),應(yīng)為running

    執(zhí)行以下命令下載并配置運(yùn)行frp客戶端。

    //下載安裝包
    wget https://github.com/fatedier/frp/releases/download/v0.34.3/frp_0.34.3_linux_amd64.tar.gz
    //解壓安裝包
    tar -xvf frp_0.34.3_linux_amd64.tar.gz
    //使用nano或者vim打開解壓后的frpc.ini文件并做以下配置以啟用ssh功能
    # frpc.ini
    [common]
    server_addr = 
    server_port = 7000
    
    [ssh]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 22
    remote_port = 7022
    //通過以下命令啟動frps
    ./frps -c ./frps.ini

    通過第三方計(jì)算機(jī)終端訪問 ssh -p 7022 root@ ,輸入密碼后即可通過ssh方式訪問linux主機(jī)(此處為windows服務(wù)器的wsl子系統(tǒng))。

    3. frp配置文件說明

    在下載解壓后的文件中,分別有 frpc_full.ini 和 frps_full.ini 兩個(gè)配置文件示例,包括了大部分功能的配置方法,在frp官網(wǎng)中也提供了大量配置案例。可供參考。

    3.1 通過token加密frp

    上文所述的frp是不安全的,在沒有加密的情況下,任何人都可以使用你的frp服務(wù)器進(jìn)行內(nèi)網(wǎng)穿透服務(wù)。為此,frp提供了token和OpenID加密方式進(jìn)行加密,要使用token加密,只需要在服務(wù)器端的 frps.ini 配置文件和客戶端的 frpc.ini 文件中增加同樣的token配置項(xiàng)即可。

    #frps.ini
    [common]
    
    authentication_method = token
    token = 12345678
    
    #frpc.ini
    [common]
    
    token = 12345678

    此外,也可以采用通過環(huán)境變量取代配置文件明文密碼的方式進(jìn)行參數(shù)配置及加密,參考配置如下:

    # frpc.ini
    [common]
    server_addr = {{ .Envs.FRP_SERVER_ADDR }}
    server_port = 7000
    
    [ssh]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 22
    remote_port = {{ .Envs.FRP_SSH_REMOTE_PORT }}

    3.2 配置http端口及域名服務(wù)

    服務(wù)端配置http服務(wù)端口及域名主機(jī)。

    # frps.ini
    [common]
    #http端口服務(wù)
    vhost_http_port = 8000
    
    #配置主機(jī)域名后,可以在客戶端配置子域名進(jìn)行訪問
    subdomain_host = domain.com

    如果客戶端要配置http子域名,可以采用如下配置,這樣可以通過test.domain.com:8000訪問客戶機(jī)的80端口:

    # frpc.ini
    [web]
    type = http
    local_port = 80
    subdomain = test

    如果客戶端要配置獨(dú)立的域名,可以采用如下配置,并把 ? 域名解析到服務(wù)器的ip地址上,即可通過如下配置,以 ?:8000? 訪問客戶機(jī)80端口:

    [web]
    type = http
    local_port = 80
    custom_domains =


    3.3 配置ftp服務(wù)(內(nèi)網(wǎng)ftp服務(wù)器被動模式)

    對于在局域網(wǎng)中搭建的 ?ftp? 服務(wù)器,需要通過被動模式,才能穿過防火墻供外部 ?ftp? 客戶端訪問,以 ?FileZilla Server? 為例,在服務(wù)器配置時(shí),需要配置以下被動模式,在本例中, ?ftp? 服務(wù)器使用21端口,被動端口定義為7018~7020。

    使用frp實(shí)現(xiàn)內(nèi)網(wǎng)穿透管理物聯(lián)網(wǎng)設(shè)備

    在客戶端作如下配置,其中ftp用于配置ftp服務(wù)器,ftp1~3用于配置被動端口,配置后可以通過7021端口訪問客戶端21端口的ftp服務(wù):

    [ftp]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 21
    remote_port=7021
    
    [ftp1]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 7018
    remote_port = 7018
    
    [ftp2]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 7019
    remote_port = 7019
    
    [ftp3]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 7020
    remote_port = 7020

    3.4 配置管理頁面

    frp可以通過程序內(nèi)置的管理頁面進(jìn)行管理,要配置服務(wù)端管理頁面,需要配置相應(yīng)的 ?dashboard? 參數(shù)。如下配置后,可以訪問frp服務(wù)器的7500端口,通過設(shè)置的用戶名和密碼管理frps服務(wù)器。

    //frps.ini
    [common]
    dashboard_port = 7500
    dashboard_user = admin
    dashboard_pwd = admin

    要管理與配置客戶端參數(shù),需要對 ?frpc.ini? 做如下配置,配置后,可以通過在客戶端本地7400端口管理并配置frp客戶端。

    //frpc.ini
    [common]
    admin_addr = 127.0.0.1
    admin_port = 7400
    admin_user = admin
    admin_pwd = admin

    4.配置frp開機(jī)啟動

    4.1 在Ubuntu通過systemd下配置frps為系統(tǒng)服務(wù)

    新的Ubuntu系統(tǒng)通過systemd來管理服務(wù)以替代傳統(tǒng)的init,關(guān)于systemd的入門教程,可以參考阮一峰博客的文章要配置frps為系統(tǒng)服務(wù),可以按照如下步驟進(jìn)行操作.

    //1. /usr/frp目錄并復(fù)制frps 和frps.ini 文件到其中,本步驟僅為后續(xù)操作方便。
    //2. 在/lib/systemd/system/目錄下新建frps.service文件并寫入以下內(nèi)容,這也是service一類文件的標(biāo)準(zhǔn)寫法。
    [Unit]
    Description=Frp Server Service
    After=network.target
    
    [Service]
    Type=simple
    User=root
    Restart=on-failure
    RestartSec=5s
    ExecStart=/usr/frp/frps -c /usr/frp/frps.ini
    
    [Install]
    WantedBy=multi-user.target
    
    //以上操作完成后,可以通過Ubuntu系統(tǒng)的systemctl命令操作frps服務(wù)
    sudo systemctl enable frps.service  # 設(shè)置開機(jī)啟動,根據(jù) install 建立軟鏈
    sudo systemctl disable frps.service # 取消開機(jī)啟動,根據(jù) install 移除軟鏈
    sudo systemctl daemon-reload        # 重新加載配置,修改 systemd 配置執(zhí)行
    systemctl status frps       # 查看 frps 服務(wù)狀態(tài)
    systemctl cat frps          # 查看 frps 服務(wù)配置
    sudo systemctl start frps   # 啟動 frps 服務(wù)
    sudo systemctl stop frps    # 停止 frps 服務(wù)

    4.2 在Windows系統(tǒng)下通過配置任務(wù)計(jì)劃來配置 ?frpc? 開機(jī)自啟動

    利用批處理文件和任務(wù)計(jì)劃來啟動程序是windows下常規(guī)操作,在 ?frp? 目錄下新建一個(gè) ?start.bat? 批處理文件。

    @echo off
    :home
    frpc -c frpc.ini
    goto home

    上述腳本會在服務(wù)中斷后自動重啟服務(wù)(一旦frpc退出,就回到home行重新開始),一個(gè)簡單的方式是對上述腳本新建一個(gè)快捷方式并放置在以下目錄中,就可以開機(jī)自動啟動,但每次開機(jī)都會有windows命令行出現(xiàn)。

    ?C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp? 因此還是通過配置任務(wù)計(jì)劃更好一些。


    搜索任務(wù)計(jì)劃程序,打開windows任務(wù)計(jì)劃程序。新建一個(gè)基本任務(wù),“常規(guī)”欄名稱可以隨意填寫,在運(yùn)行時(shí)選擇不管用戶是否登錄都運(yùn)行,并且選擇使用最高權(quán)限運(yùn)行和隱藏。在“觸發(fā)器”欄中選擇啟動時(shí)。在“操作”欄中選擇新建操作,程序指向 ?start.bat? 位置,起始位置指向腳本目錄。任務(wù)配置完成后,系統(tǒng)在開機(jī)時(shí)即可自動運(yùn)行。

    使用frp實(shí)現(xiàn)內(nèi)網(wǎng)穿透管理物聯(lián)網(wǎng)設(shè)備

    使用frp實(shí)現(xiàn)內(nèi)網(wǎng)穿透管理物聯(lián)網(wǎng)設(shè)備

    使用frp實(shí)現(xiàn)內(nèi)網(wǎng)穿透管理物聯(lián)網(wǎng)設(shè)備

    4.3 利用 ?WINSW? 將frp注冊為windows系統(tǒng)服務(wù)以實(shí)現(xiàn)自啟動

    ?WINSW? 是一個(gè)可以把任何(幾乎)windows程序注冊成windows系統(tǒng)服務(wù)的工具軟件,[下載WINSW] 并保存在frp目錄下,為了方便起見,將WINSW重命名為 ?myfrpc.ext? ,并在同一目錄下新建一個(gè) ?myfrpc.xml? 文件,添加內(nèi)容如下:

    <service>
      <id>frpc</id>
      <name>Frpc</name>
      <description>This service runs frp client system with configuration</description>
      <env name="JENKINS_HOME" value="%BASE%"/>
      <executable>D:\services\frp\frpc.exe</executable>
      <arguments>-c frpc.ini</arguments>
      <onfailure action="restart" delay="15 sec"/>
      <onfailure action="restart" delay="30 sec"/>
      <log mode="roll"></log>
    </service>

    其中, ?executable? 指向 ?frpc.exe? 所在目錄, ?arguments? 為運(yùn)行參數(shù), ?onfailure? 設(shè)置了兩次重啟機(jī)會,來保證服務(wù)可以正常啟動。在命令行中運(yùn)行 ?myfrpc.exe(即重命名后的winsw.exe文件)? 來管理服務(wù):

    ./myfrpc.exe install #注冊服務(wù),winsw會自動找到同一目錄下的xml文件并注冊其中的程序
    ./myfrpc.exe uninstall #取消服務(wù)
    ./myfrpc.exe start #啟動服務(wù)
    ./myfrpc.exe stop #停止服務(wù)
    ./myfrpc.exe status #查看服務(wù)狀態(tài)
    ./myfrpc.exe restart #重啟服務(wù)

    這樣就將frpc注冊為windows系統(tǒng)服務(wù),在windows任務(wù)管理器的服務(wù)欄中可以看到該服務(wù)。

    最新資訊
    最熱資訊
    主站蜘蛛池模板: 中文字幕成人免费高清在线 | 亚洲精品无码乱码成人| 成人免费黄网站| 成人Av无码一区二区三区| 国产成人综合久久精品下载 | 国产成人精品视频一区二区不卡 | 亚洲精品无码乱码成人| 色噜噜成人综合网站| 成人免费无毒在线观看网站| 国产成人教育视频在线观看| 91亚洲国产成人久久精品网站| 成人免费午夜视频| 中文国产成人精品久久不卡| 国内外成人免费视频| 久久成人免费电影| 国产成人教育视频在线观看| 窝窝视频成人影院午夜在线| 亚洲最大成人网色| 怡红院成人影院| 中文字幕成人免费视频| 国产成人一区二区动漫精品| 日本成人在线播放| 91成人免费版| 久久99国产精品成人| 免费一级成人毛片| 成人免费一区二区三区视频| 欧美成人亚洲欧美成人| 日韩av无码成人精品国产| 亚洲AV无码成人精品区在线观看 | 成人黄色激情视频| 日韩国产成人无码AV毛片| 欧美激情成人网| 2345成人高清毛片| 91精品成人福利在线播放| 久久久久亚洲精品成人网小说| 全彩成人18h漫画在线| 免费成人在线电影| 亚洲国产精品成人AV在线| 国产成人久久一区二区三区| 国产成人亚洲精品无码AV大片| 国产成人精品日本亚洲直接|