伺服器不允許上網並且需要跳板機才能訪問?學會使用這個工具,輕鬆讓伺服器使用yum。
前言
你是否遇到過這樣的場景,伺服器不能上網,但是又需要安裝某個軟體,面對如蛛網般雜亂的rpm包依賴關係,放棄或許是最好的選擇,這樣你就不必再為無法完成工作而痛苦又懊惱。
但是今天,你有了一個更好的選擇。
4DNAT
4DNAT取名源自4和DNAT。這個工具工作在OSI模型的第四層傳輸層,同時4和for諧音,意為專門為目標地址轉換而服務的工具。4DNAT使用go語言開發,具有天然的跨平臺性,並且完全使用go標準庫開發,沒有任何的第三方依賴,編譯之後只有一個二進位制可執行檔案。它有4種工作模式:
轉發模式
接受兩個引數,監聽埠和目標地址,在監聽埠接收到請求後會主動連線目標地址,示例:
。/4dnat -forward 2222 192。168。1。100:22
監聽模式
接受兩個引數,監聽埠1和監聽埠2,並交換兩個埠接收到的資料,示例:
。/4dnat -listen 10000 10001
代理人模式
接受兩個引數,目標地址1和目標地址2,啟動後會主動連線這兩個目標地址,並交換兩個埠接收到的資料,示例:
。/4dnat -agent 127。0。0。1:10000 127。0。0。1:22
http/https代理模式
接受兩個引數或四個引數,代理型別、監聽埠、證書路徑和私鑰路徑,示例:
http代理
。/4dnat -proxy http 1080
https代理
。/4dnat -proxy https 1080 server。crt server。key
使用場景
場景一
期望可以在
使用者電腦
上直接訪問目標伺服器上的3306埠,跳板機器是一臺Windows機器,沒辦法做ssh埠轉發。
單向虛線箭頭表示可以單向訪問,反之不行。
使用4DNAT在
跳板機器
上執行如下命令做埠轉發
# 本地監聽3307埠,接收到請求後主動連線10。1。0。40的3306埠
。/4dnat -forward 3307 10。1。0。40:3306
在
使用者電腦
上訪問
172.16.0.30:3307
即等同於訪問
10.1.0.40:3306
,於是就可以在
使用者電腦
愉快的訪問
目標機器
上的服務啦。
場景二
期望目標
目標機器
可以上網,如使用yum安裝軟體。
在
使用者電腦
上開啟一個http代理
。/4dnat -proxy http 1080
在
跳板機器
上使用監聽模式監聽兩個埠,用於交換資料
。/4dnat -listen 10000 10001
在
目標機器
上使用監聽模式監聽兩個埠,用於交換資料
。/4dnat -listen 20000 20001
在
使用者電腦
上使用代理人模式主動連線兩個目標地址,用於交換資料
。/4dnat -agent 127。0。0。1:1080 172。16。0。30:10000
在
跳板機器
上使用代理人模式主動連線兩個目標地址,用於交換資料
。/4dnat -agent 127。0。0。1:10001 10。1。0。40:20000
在
目標機器
上修改代理
cat <
http_proxy=http://127。0。0。1:20001
https_proxy=http://127。0。0。1:20001
export http_proxy https_proxy
EOF
source /etc/profile
在
目標機器
上測試訪問網際網路
curl https://typesafe。cn
最後奉上專案地址
https://
github。com/dushixiang/4
dnat
Proxy
首發我的微信公眾號:我在對面的角落