我正在尝试在 Alpine 虚拟机上使用 sshuttle。我能够安装依赖项并从 GitHub 编译源代码。但是,当我尝试连接到我的服务器时,我收到以下错误消息:
fw: fatal: Unable to automatically find a supported method. Check that the appropriate programs are in your PATH. We tried methods: ['nat', 'nft', 'pf', 'ipfw']
c: fatal: ['/usr/bin/sudo', '-p', '[local sudo] Password: ', '/usr/bin/env', 'PYTHONPATH=/usr/lib/python3.8/site-packages/sshuttle-1.0.6.dev12+gf928f94-py3.8.egg', '/usr/bin/python', '/usr/bin/sshuttle', '--method', 'auto', '--firewall'] expected READY, got b''
我不明白的是,完全相同的事情也适用于我的 Ubuntu 设置,我的路径中没有任何 nat、nft、pf 或 ipfw。然而,我的两台机器不使用相同版本的 sshuttle:Ubuntu 上为 0.78.5,Alpine 上为 1.0.6.dev12+gf928f94。
答案1
仔细查看了源码:
- ipfw 方法需要
ipfw
$PATH 中的二进制文件 - nat 需要
iptables
$PATH 中的二进制文件 - nft 需要
nft
$PATH 中的二进制文件 - pf 需要
pfctl
$PATH 中的二进制文件
我怀疑你的 Alpine 缺少iptables
,不像 Ubuntu 可能默认有它们。安装 iptables 应该可以解决这个问题。
我不是 Alpine Linux 用户,但该软件包似乎名为 iptables,所以
apk add iptables
应该可以解决问题。