【问题标题】:Trouble getting sshuttle to start up with --DNS routing无法使用--DNS 路由启动 sshuttle
【发布时间】:2014-03-14 11:12:55
【问题描述】:

我已经成功地在同一台机器上运行了隧道,但我无法使用--dns 进行 sshuttle 加载。没有它,它会加载并工作。这是命令行和控制台返回...有什么想法吗?

无论我做什么,我都无法让这个坏男孩在启用 --dns 的情况下启动。

$ sshuttle --dns -vr server:8080 0/0
Starting sshuttle proxy.
Listening on ('127.0.0.1', 12300).
DNS listening on ('127.0.0.1', 12300).
firewall manager ready.
c : connecting to server...
Password:
 s: latency control setting = True
 s: available routes:
 s:   10.0.0.0/8
 s:   10.0.0.1/32
 s:   10.0.0.3/32
 s:   10.0.0.255/32
 s:   169.254.0.0/16
c : connected.
Connected.
firewall manager: starting transproxy.
>> ipfw -q add 12300 check-state ip from any to any
>> ipfw -q add 12300 skipto 12301 tcp from any to 127.0.0.0/8
>> ipfw -q add 12300 fwd 127.0.0.1,12300 tcp from any to 0.0.0.0/0 not ipttl 42 keep-state setup
>> ipfw -q add 12300 divert 12300 udp from any to 10.12.4.220/32 53 not ipttl 42
>> ipfw -q add 12300 divert 12300 udp from any to 10.1.8.128/32 53 not ipttl 42
>> ipfw -q add 12300 divert 12300 udp from any to 10.1.8.129/32 53 not ipttl 42
>> ipfw -q add 12300 divert 12300 udp from any 12300 to any not ipttl 42
c : DNS request from ('10.12.64.218', 51288): 23 bytes
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "assembler.py", line 26, in <module>
  File "server.py", line 244, in main
  File "ssnet.py", line 555, in runonce
  File "ssnet.py", line 457, in callback
  File "ssnet.py", line 445, in handle
  File "ssnet.py", line 384, in got_packet
  File "server.py", line 232, in dns_req
  File "server.py", line 128, in __init__
  File "server.py", line 135, in try_send
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)
socket.gaierror: [Errno 8] nodename nor servname provided, or not known
firewall manager: undoing changes.
>> ipfw -q delete 12300
c : fatal: server died with error code 1

谢谢!

【问题讨论】:

  • 您在哪个平台上运行,您使用的是哪个 sshuttle 版本?这个回溯并没有真正的意义,因为错误表明了 DNS 查找,而这部分代码并没有尝试进行任何 DNS 活动。您是否以任何方式修改了您的 python 安装?
  • 嗨阿彭瓦尔!感谢您的回复。我用自制软件安装了它,所以我假设它是最新的? Mac OSX 10.9.1。我唯一能想到的是我曾尝试使用 OpenDNS 中的“DNSCrypt”。由于出站端口受阻,我并没有真正为我工作。所以,我从 Github 运行了他们的卸载脚本,然后用 Hazel 删除了日志。你认为这可能与它有关吗?有什么方法可以恢复到“默认”python 安装来验证?
  • 仅供参考 - 刚刚从恢复驱动器完全重新安装了 OSX。完全相同的错误。有什么想法吗?
  • 我在第一次 dns 查找时遇到了 sshuttle 崩溃的问题,最终将其确定为 resolv.conf。在 server.py[127] 中,随机选择一个 dns 服务器来转发 dns 查找。就我而言,我的 resolv.conf 有 3 个 ipv4 和 3 个 ipv6 条目。注释掉 ipv6 条目后,sshuttle 与 --dns 完美配合。代码不会检查是否随机选择了什么类型的 dns 服务器,如果没有尝试或尝试了无效的 dns 服务器,则会崩溃。
  • 弗洛伊德 - 知道在这里做什么吗?我认为这是由我试图卸载的其他一些 dns 软件修改的。我在 /etc 中的 resolv.conf 中只有这个......它们应该是什么,你的来自哪里?第一行:域名首页;第二行:名称服务器 192.168.1.1

标签: python macos ssh dns tunnel


【解决方案1】:

根据我上面的 cmets,原来错误与 resolv.conf 中的 dnsserver 有关。我不确定将其更改为像 google 或 safeDNS 这样的自定义 DNS 服务器是否是一件坏事,但我做到了,它现在按预期工作。似乎 resolvconf 程序中的路由存在问题,在这里发现,一个人对我做了类似的事情来解决,但评论者指出了一个更深层次的问题,没有详细说明如何解决:http://opensourcemissions.wordpress.com/2012/12/03/sshuttle-dns-stopped-working-and-how-i-fixed-it/

【讨论】:

  • 我遇到了类似的问题,resolve.conf 中的 DNS 条目末尾有逗号并且混淆了 sshuttle。
猜你喜欢
  • 1970-01-01
  • 2018-04-13
  • 1970-01-01
  • 2021-06-28
  • 1970-01-01
  • 1970-01-01
  • 2021-06-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多