<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          巧用 SSH 打通外網(wǎng)限制

          共 4434字,需瀏覽 9分鐘

           ·

          2022-02-15 15:18

          上一篇:推薦騰訊最新重磅開源項目!

          文案轉載于:知乎李耀

          鏈接:https://zhuanlan.zhihu.com/p/444319023

          漫圖來源于:捷哥,文案格式排版:釋然


          筆者在工作中遇到此場景,如下兩條網(wǎng)絡限制下,總部如何訪問分公司內部web服務器?
          • dmz服務器可以訪問總部外網(wǎng)服務器22端口,不可以訪問web服務器;
          • web服務器不可訪問公網(wǎng),但是到dmz網(wǎng)絡無限制。


          初看需求,我們第一個想到的肯定是內網(wǎng)端口映射到公網(wǎng),或者vpn,但是不修改網(wǎng)絡策略情況下很難實現(xiàn)。有沒有別的方法呢,我們繼續(xù)從純網(wǎng)絡角度分析現(xiàn)有條件。

          網(wǎng)絡通信是雙向的,有請求,有回應,就是我們俗稱的“通”。dmz可以訪問外部22端口,代表請求,回包兩個通信通道都是通暢的,我們是否可以借助回包通道,從外部發(fā)起到內部的反向訪問呢?答案當然是有的,我們來試一試,需要ssh工具。

          我們在dmz執(zhí)行如下命令。

          [root@dmz]#  ssh -f -N -g -R  6606:10.1.1.1:80 root@115.100.100.100


          -f:代表后臺運行程序
          -N:表示使用遠程端口轉發(fā)創(chuàng)建ssh隧道
          -g:監(jiān)聽本機所有IP地址
          -R,表示使用遠程端口轉發(fā)創(chuàng)建ssh隧道

          命令結合起來什么意思呢,我們使用root用戶遠程連接到115.100.100.100,并且遠程主機監(jiān)聽6606端口,當訪問此端口時,會跳轉到dmz的80端口。此過程會使用到ssh隧道。dmz運行之后,總部服務器的已經有了端口監(jiān)聽。

          [root@center]netstat -tunlp | grep 6606
              tcp        0      0 127.0.0.1:6606          0.0.0.0:*               LISTEN      8616/sshdroot
              我們在總部服務器嘗試端口提示拒絕,代表網(wǎng)絡已經打通了,但是dmz服務器并沒有監(jiān)聽80端口,所以報端口拒絕。
          [root@center]telnet 127.0.0.1 6606
              Trying 127.0.0.1...
              telnetconnect to address 127.0.0.1Connection refused

          如法炮制,再把web服務器到dmz的網(wǎng)絡反向打通,dmz服務器訪問本地80端口時將跳轉到web服務器的80端口。

          [root@web]ssh -f -N -g -R  80:10.1.1.1:80 root@10.1.1.2

          再次到總部服務器測試訪問就能通信了。

          [root@center]telnet 127.0.0.1 6606
              Trying 127.0.0.1...
              Connected to 127.0.0.1.
              Escape character is '^]'.

          我們最后從網(wǎng)絡角度來回顧數(shù)據(jù)包的的轉發(fā)過程。

          從總部服務器看到如下信息。

          #dmz服務器以115.100.100.101:29493作源,訪問本地22端口,建立了tcp連接。
          [root@center]ss | grep 115.
              tcp    ESTAB      0      0      172.16.1.1:22                115.100.100.101:29493
          [root@center]netstat -tpna | grep 115.
              tcp        0      0 172.16.1.127:22      101.230.91.53:29493     ESTABLISHED 8555/sshdroot
          #本地端口也對應到了進程號8616[root@center]#netstat -tunlp | grep 6606
              tcp        0      0 127.0.0.1:6606          0.0.0.0:*               LISTEN      8616/sshdroot[root@center]ps -ef | grep 8616
              root      8616  8555  0 Dec03 ?        00:01:04 sshdroot.


          當總部服務器訪問127.0.0.1:6606時,網(wǎng)絡連接信息如下。


          雙向通道已經建立
          [root@center]ss | grep 6606
              tcp    ESTAB      0      0      127.0.0.1:6606                 127.0.0.1:51158
              tcp    ESTAB      0      0      127.0.0.1:51158                127.0.0.1:6606


          我們最后用圖片來展示最終網(wǎng)絡轉發(fā)過程。


          dmz發(fā)起ssh連接到總部服務器,并且遠程端口轉發(fā)。遠程服務器訪問轉發(fā)端口時,數(shù)據(jù)將封裝到回包通道,由于ssh本身加密,外部網(wǎng)絡無法知曉網(wǎng)絡交互邏輯,從而實現(xiàn)反向訪問。


          感謝您的閱讀,也歡迎您發(fā)表關于這篇文章的任何建議,關注我,技術不迷茫!小編到你上高速。

              · END ·
          最后,關注公眾號互聯(lián)網(wǎng)架構師,在后臺回復:2T,可以獲取我整理的 Java 系列面試題和答案,非常齊全


          正文結束


          推薦閱讀 ↓↓↓
          1.心態(tài)崩了!稅前2萬4,到手1萬4,年終獎扣稅方式1月1日起施行~

          2.深圳一普通中學老師工資單曝光,秒殺程序員,網(wǎng)友:敢問是哪個學校畢業(yè)的?

          3.從零開始搭建創(chuàng)業(yè)公司后臺技術棧

          4.程序員一般可以從什么平臺接私活?

          5.清華大學:2021 元宇宙研究報告!

          6.為什么國內 996 干不過國外的 955呢?

          7.這封“領導痛批95后下屬”的郵件,句句扎心!

          8.15張圖看懂瞎忙和高效的區(qū)別!

          瀏覽 34
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  黄色AV天堂 | 午夜无码福利 | 影音先锋AV啪啪资源 | 家庭乱伦_第1页_桃花影视 | 黄色网页在线免费观看 |