これはかなりめちゃくちゃです、私は知っています。それをすべて説明させてください。
ルーターに動的DNSが設定されています。ポート転送後、目的のアプリケーションに接続できることを確認しました(ポート1337で何かを実行し、適切なマシンにポートを転送すると、外部から問題なく接続できます)。
さて、MacbookをVPNに接続し、上記のように何かを実行すると、期待通りに動作します。 しかし、Ubuntu Server 16.04を実行しているマシンをVPNに接続して何かを実行するか、sshで接続したい場合、失敗します。ルーターのSSH接続に使用しているポートを転送しました。また、Webサーバーをホストしようとしましたが、これも失敗しました。
この問題について何ができますか?これは私には意味がありません。
Ubuntu Serverマシンについて:openvpnクライアントとsshサーバーが構成され、ファイアウォールが実行されておらず、iptablesが編集されておらず、イーサネット経由でルーターに接続されているクリーンインストールです。
編集:ルーティングテーブルは次のとおりです。 http://Pastebin.com/ay6fpLcL
OK、解決策を見つけることができました。
openvpn
パッケージの使用:これらの2行を.ovpn
ファイル(または自動接続している場合は.conf
)に追加します。
script-security 2
up /etc/openvpn/up.sh
次に、実行可能権限(755/700)で/etc/openvpn/up.sh
を作成します。
#!/bin/sh
ip rule add from <your-server-ip> table 128
ip route add table 128 to <your-server-subnet> dev <your-interface>
ip route add table 128 default via <server-gateway>
例えば、ここに私の設定があります:
#!/bin/sh
ip rule add from 192.168.1.26 table 128
ip route add table 128 to 192.168.1.0/24 dev eno1
ip route add table 128 default via 192.168.1.1
必要な手順を予測することはできませんが、通常、VPN接続が確立されるたびにup.sh
スクリプト(上記)を実行する必要があります。
同じ問題を抱えている人の助けになることを願っています。乾杯!