説明したのと同じ問題が発生しました。ポート転送にVPNクライアントを使用するしかし、成功しませんでした。
OpenVPN Access Serverバージョン2.5とサイト間ルーティングで構成されたクライアントがあります。クライアントとサーバーの両方がプライベートIPアドレスを使用して互いに通信できます。クライアント側には、ポート8081をリッスンするApacheサーバーがあります。
目的は、OpenVPNサーバーのパブリックIPに接続し、ユーザーが背後にあるApacheサーバーにアクセスできるように接続をクライアントに転送することです。
私の現在の設定は次のとおりです
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A PREROUTING -d 50.xxx.xxx.xxx -p tcp --dport 8081 -j DNAT --to-dest 192.168.2.86:8081
iptables -t nat -A POSTROUTING -d 192.168.2.86 -p tcp --dport 8081 -j SNAT --to-source 10.0.2.42
私が間違っている簡単なことはありますか?ありがとうございます。
答え1
問題はiptablesルールに関連しています。次のルールを追加すると、すべてが期待どおりに機能します。
iptables -t nat -I PREROUTING 1 -d {SERVER_LOCAL_IP_ADDRESS} -p tcp --dport {CLIENT_PORT} -j DNAT --to-dest {CLIENT_LOCAL_IP_ADDRESS}:{CLIENT_PORT}
iptables -t nat -I POSTROUTING 1 -d {CLIENT_LOCAL_IP_ADDRESS} -p tcp --dport {CLIENT_PORT} -j SNAT --to-source {VPN_GATEWAY_IP}
iptables -I FORWARD 1 -d {CLIENT_LOCAL_IP_ADDRESS} -p tcp --dport {CLIENT_PORT} -j ACCEPT
答え2
SNATは他のポート番号DNATとチャートと一致するため、この設定はOpenVPNクライアントがOpenVPNサーバーを介してインターネットにルーターとして機能する場合にのみ機能します。
32400を8081に変更する必要があるようです。