目標: ssh raspi
LAN内および公衆インターネット上で機能する必要があります。
これを行うには、名前がLANの内部IPおよび外部からのパブリックIPに解決されることを確認する必要があります。
まず、などのドメイン名を取得する必要がありますraspi.yourdomain.com
。趣味用の無料ドメインについては、http://freedns.afraid.org/を確認してください。ドメインをパブリックIPに向ける
LANについては、DNSMasqを実行することをお勧めします。オープンなDD-WRTファームウェアは、DNSMasqと緊密に統合し、DHCPとDNSに使用します。検索ドメイン(「yourdomain.com」)を指定するだけで、各クライアントの要求名に基づいてDNS名が自動的に割り当てられます。これを機能させるには、raspiの/ etc / hostnameをにする必要がありますraspi
。
これがセットアップされると、raspi.yourdomain.comはLANのローカルIPに解決されます(すべてのマシンでローカルDNSを使用していることを確認してください)。
これで、ポート22を公共のインターネットに公開したくないと思います。大量のスニファトラフィックが発生するためです。したがって、raspi:22を他のポート、たとえば1234として公開しているルーターがあるとします。パブリックネットワークと内部ネットワークの両方で同じポートを使用するには、raspiにポートリダイレクトルールを追加できます。Linuxの場合:
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 1234 -j REDIRECT --to-port 22
sudo sh -c 'iptables-save > /etc/iptables/iptables.rules'
(eth0をip link
またはifconfig
で表示されるネットワークインターフェースの名前に、1234をパブリックポートに変更します)
これでssh -p 1234 raspi.yourdomain.com
、パブリックとLANの両方からアクセスできます。
ssh raspi
@DopeGhotiで言及されているように、クライアントマシンの〜/ .ssh / configにエントリを追加して、これをjustに短縮できます。
同じパブリックIPで追加のマシンのSSHポートを公開する場合は、別のDNS名とパブリックポートでこのプロセスを繰り返すだけです。乾杯!