Tsocks
使用 tsocks 時相同的目標 IP 地址
我需要使用 tsocks(通過 ssh 隧道建立 ssh 連接以到達給定的機器),但是有一個問題。有兩台伺服器具有相同的 IP 地址(我需要通過 ssh 隧道訪問)。所以這種情況的配置看起來像這樣:
cat /etc/tsocks.conf path { reaches = 10.1.1.2/255.255.255.255 server = 127.0.0.1 server_port = 3000 } path { reaches = 10.1.1.2/255.255.255.255 server = 127.0.0.1 server_port = 2000 }
我該如何解決這個問題?
您需要兩個
tsocks.conf
,每個 SOCKS 伺服器一個,然後將它們用作:TSOCKS_CONF_FILE=~/.tsocks-A.conf tsocks some-cmd 10.1.1.2
和
TSOCKS_CONF_FILE=~/.tsocks-B.conf tsocks some-cmd 10.1.1.2
或者,如果 SOCKS 伺服器支持 SOCKS4A 或 SOCKS5,您可以使用
dante
’ssocksify
而不是,tsocks
如果它們在遠端端具有不同的主機名,則使用主機名(並根據 中的主機名或域名指定要使用的 SOCKS 伺服器dante.conf
)。
首先,您可以通過 SSH 配置文件完成所有操作。如果您只是通過 SSH 連接到終端機器,則尤其如此。請參閱SSH 多跳配置。使用適當建立的 SSH 配置,您可以只分配目標名稱並鍵入
ssh servera
orssh serverb
,而不必設置 SSH 隧道然後鍵入tsocks ssh servera
。Tsocks 真的分不清你想要什麼。一種方法是設置兩個配置文件並發出命令以交換每個網路的配置
例如:
$ chmod +x /usr/local/bin/tsocksa.sh
$ cat /usr/local/bin/tsocksa.sh #!/bin/bash # #Swaps for Network A #See /etc/tsocs.conf.main and /etc/tsocks.conf.dest_a # sudo cat /etc/tsocks.conf{.main,.dest_a} > /etc/tsocks.conf
和
$ chmod +x /usr/local/bin/tsockss.sh
$ cat /usr/local/bin/tsockss.sh #!/bin/bash # #Swaps for Network S #See /etc/tsocks.conf.main and /etc/tsocks.conf.dest_s # sudo cat /etc/tsocks.conf{.main,.dest_s} > /etc/tsocks.conf
現在您可以將您的網路交換特定命令放入
/etc/tsocks.conf.dest_n
並將您的通用網路放入/etc/tsocks.conf.master
您還可以為相同的命令使用 Bash 別名,或者進一步將 Bash 腳本簡化為可以在 bashrc 中獲取的函式。