LINUXイントラネットデバイスはサービスをパブリックネットアドレスにマッピングする


環境の説明:
1.  A IP:192.168.0.2                :   
2.  B IP:1.1.1.1                    :   

設備Aは甲が提供した実験室の設備であり、設備Bは乙の公網設備である.甲の要求に応じて、指定された設備Aに環境、サービスを配置する必要があるが、機能テストを行う場合、パブリックネットワーク通信を通過する.デバイスAはイントラネットIPのみで、パブリックネットワークにアクセスできるが、パブリックネットワークはデバイスAにアクティブにアクセスできないため、デバイスA上のサービスをデバイスBにマッピングする必要がある.
マッピングプロセス:
1.SSHポート転送により、デバイスAのサービスをデバイスBにマッピングする(デバイスBがデバイスAにアクティブに接続できないため、デバイスA上でSSHリモートポートマッピングを行う)
              A   :ssh -o ServerAliveInterval=60 -f -N -R 8080:192.168.0.2:8443 [email protected]

                  :         8443,     B(1.1.1.1) 8080  ,       B 8080   ,         8443   ,       SSH    ,      ,           。
           Tips:          -o ServerAliveInterval=60      ,                ssh   ,      ,      60s ssh server   keep-alive ,  ssh  ,    

2.ステップ1の操作を経て、この時点ですでにデバイスBに傍受の8080ポートを見ることができますが、傍受のIPは127.0.0.1というループバックアドレス(sshリモートマッピングはリモートデバイスの127にしかマッピングできません.何の方法も変更できません)であり、127は外部から直接アクセスできないので、ここではファイアウォールを通じてDNATを作る必要があります.元の要求の宛先アドレスの変更(ポート)
               B   :iptables -t nat -A PREROUTING -p tcp --dport 8443 -j DNAT --to-destination 127.0.0.1:8080
            
                   :     8443   TCP        127.0.0.1 8080   
            Tips:iptables       ,Linux        ,          127.0.0.1        ,            。
            sysctl -w net.ipv4.conf.eth0.route_localnet=1
                    DNAT 127   。

以上の2つのステップを経て、1.1.1.1:8443ポート、すなわち192.168.0.2の8443ポートにアクセスしました.