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がありません。しかし、私の2つのコンピュータは同じバージョンのsshuttle(Ubuntuでは0.78.5、Alpineでは1.0.6.dev12 + gf928f94)を使用しません。
答え1
ソースコードを慎重に確認してください。
- ipfwメソッド
ipfw
には$ PATHにバイナリが必要です。 - natは
iptables
$ PATHにバイナリが必要です。 - nft
nft
には $PATH にバイナリが必要です。 - pf
pfctl
には $PATH にバイナリが必要です。
iptables
デフォルトでは、含まれているUbuntuとは異なり、Alpineにはその機能がありません。 iptablesをインストールすると、この問題は解決されます。
私はAlpine Linuxユーザーではありませんが、パッケージがiptablesと呼ばれているようです。
apk add iptables
これで問題が解決します。