Cih*_*ser 7 networking dns ssh tunnel macos
我想设置我的 OSX 系统,以便所有网络流量都通过 SSH 隧道完成。
为此我编写了一个小脚本,这些是它执行的命令:
# setup tunnel
ssh -fN -D 1080 -p 22 user@remote
# start up redsocks
sudo redsocks -c /tmp/redsocks.conf -p /tmp/redsocks.pid
# forward all tcp traffic to tunnel
sudo ipfw add 0010 \
fwd 127.0.0.1,12345 \
tcp from me \
to any not dst-port 12345 \
not dst-port 1080 \
not dst-ip REMOTE_IP
Run Code Online (Sandbox Code Playgroud)
我使用 redsocks 为我的 ssh 隧道创建一个 http 代理(以便我可以通过 ipfw将所有tcp 流量转发给它),redsocks.conf 如下所示:
base {
log_debug = on;
log_info = on;
log = "file:/tmp/redsocks.log";
redirector = generic;
}
redsocks {
local_ip = 127.0.0.1;
local_port = 55660;
ip = 127.0.0.1;
port = 1080;
type = socks4;
}
Run Code Online (Sandbox Code Playgroud)
到目前为止一切似乎都正常,我的 OSX 系统上的所有 TCP 流量都是通过 ssh 隧道完成的,但问题在于 UDP 流量,因此 DNS 查询不起作用。
如何在本地计算机上获取 DNS 以通过 SSH 隧道工作?
您的ipfw \xe2\x80\xa6
线路仅转发 TCP 流量。也许添加以下行?
sudo ipfw add 0011 fwd 127.0.0.1,12345 \\\n udp from me \\\n to any not dst-port 12345 \\\n not dst-port 1080 \\\n not dst-ip REMOTE_IP\n
Run Code Online (Sandbox Code Playgroud)\n\n添加set -x
(用于调试)和set -e
(如果任何命令失败则立即失败)也是一个好主意。
tun
SSH tap
。-oTunnel
) 。\n\n-oTunnelDevice
归档时间: |
|
查看次数: |
12823 次 |
最近记录: |