私のコンピュータが起動したらすぐに設定されるホームサーバーのトンネルを設定したいと思います。使用この回答、autossh
起動時に実行するように設定されたサービスにコマンドを設定しました。私はトンネルがインターネット上で動作し、それに対応できる動的DNSサービスを持つことを望みます。
サービスを手動で実行すると、トンネルが正常に接続されます。この問題は、サービスの起動後に自動的に起動したときに発生します。サービスは正常に開始されますが、ホスト名を解決できないため、サーバーへの接続は確立されません。
ssh child pid is 1413
ssh: Could not resolve hostname my.host.name: Temporary failure in name resolution
ssh exited with error status 255; restarting ssh
私のサービスファイルは次のとおりです。
[Unit]
Description=Creates tunnel to server
After=network.target
[Service]
User=james
Environment="AUTOSSH_GATETIME=0"
ExecStart=/usr/bin/autossh -M 0 -o "StrictHostKeyChecking=no" -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -NR 3030:localhost:22 [email protected]
[Install]
WantedBy=multi-user.target
この問題を解決する方法はありますか?
答え1
申し訳ありません。私が認識していないバグがあることがわかりました。
Error: remote port forwarding failed for listen port 3030
エラーの後にエラーが表示されますcould not resolve hostname
。
エラーの原因が何であるかExitOnForwardFailure yes
よくわかりませんが。/etc/ssh/ssh_config
ssh
ssh
このエラーはデフォルトセッションを中断したようです。このブロックはautossh
私のサーバーに再接続しようとします。構成をこのように変更すると、そのエラーautossh
が発生したときに接続を再試行できるようになります。ssh
systemctl status
autossh
これで、複数の接続を試みると、次のエラーが発生します。
starting ssh (count 16)
ssh child pid is 2463
Error: remote port forwarding failed for listen port 3030
ssh exited with error status 255; restarting ssh
starting ssh (count 17)
ssh child pid is 2473
Error: remote port forwarding failed for listen port 3030
ssh exited with error status 255; restarting ssh
starting ssh (count 18)
ssh child pid is 2481
以前は、これらのエラーの1つだけを表示してからautossh
中断しました。
質問に含まれるエラーは引き続き発生しますが、サービスが最初に実行されたときにネットワーク接続が正しく設定されていない可能性があるため、心配する必要はありません。
答え2
変える
After=network.target
そして
After=network-online.target