自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

妙啊!巧用 SSH 突破限制穿透內(nèi)網(wǎng)

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

筆者在工作中遇到此場景,如下兩條網(wǎng)絡(luò)限制下,總部如何訪問分公司內(nèi)部web服務(wù)器?

  • dmz服務(wù)器可以訪問總部外網(wǎng)服務(wù)器22端口,不可以訪問web服務(wù)器;
  • web服務(wù)器不可訪問公網(wǎng),但是到dmz網(wǎng)絡(luò)無限制。

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

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

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

[root@dmz]#  ssh -f -N -g -R  6606:10.1.1.1:80 root@115.100.100.100
-f #代表后臺運行程序
-N #表示使用遠程端口轉(zhuǎn)發(fā)創(chuàng)建ssh隧道
-g #監(jiān)聽本機所有IP地址
-R #表示使用遠程端口轉(zhuǎn)發(fā)創(chuàng)建ssh隧道

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

[root@center]# netstat -tunlp | grep 6606
tcp 0 0 127.0.0.1:6606 0.0.0.0:* LISTEN 8616/sshd: root

我們在總部服務(wù)器嘗試端口提示拒絕,代表網(wǎng)絡(luò)已經(jīng)打通了,但是dmz服務(wù)器并沒有監(jiān)聽80端口,所以報端口拒絕。

[root@center]# telnet 127.0.0.1 6606
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused

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

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

再次到總部服務(wù)器測試訪問就能通信了

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

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

從總部服務(wù)器看到如下信息。

#dmz服務(wù)器以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/sshd: root
#本地端口也對應(yīng)到了進程號8616
[root@center]#netstat -tunlp | grep 6606
tcp 0 0 127.0.0.1:6606 0.0.0.0:* LISTEN 8616/sshd: root[root@center]# ps -ef | grep 8616
root 8616 8555 0 Dec03 ? 00:01:04 sshd: root.

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

#雙向通道已經(jī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)絡(luò)轉(zhuǎn)發(fā)過程。

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

責(zé)任編輯:龐桂玉 來源: 民工哥技術(shù)之路
相關(guān)推薦

2013-04-22 10:07:08

2022-09-19 13:11:56

命令SSH內(nèi)網(wǎng)穿透

2024-01-06 10:26:04

2024-11-25 16:25:23

內(nèi)網(wǎng)穿透網(wǎng)絡(luò)協(xié)議

2024-10-12 20:56:19

ProxyChain

2022-05-17 07:26:33

動畫CSS前端

2022-06-27 08:01:55

動畫CSS前端

2021-10-27 20:40:24

辦公

2019-02-28 08:44:19

內(nèi)網(wǎng)釘釘Web

2020-09-03 08:03:52

內(nèi)網(wǎng)穿透

2021-11-02 10:40:51

內(nèi)網(wǎng)穿透代理工具Linux

2013-09-04 10:15:56

2023-06-05 07:31:43

2019-06-12 09:02:20

2020-10-13 14:03:50

搭建ngrok服務(wù)

2009-01-18 09:14:00

內(nèi)網(wǎng)IPNAT

2015-11-24 15:22:53

HTTP2 WEB 內(nèi)網(wǎng)穿透

2023-11-29 10:16:45

內(nèi)網(wǎng)開源

2024-06-20 13:11:26

設(shè)計模式開發(fā)

2024-01-09 12:05:24

SSH協(xié)議端口
點贊
收藏

51CTO技術(shù)棧公眾號