localhostサーバーに接続すると、localhostではなくクライアントアドレスが生成されます。

localhostサーバーに接続すると、localhostではなくクライアントアドレスが生成されます。

wlan0少し奇妙なネットワーク設定のノートパソコンがあります。 VMとコンテナのすべてのインターネットアクセスをラップトップのデフォルトパス(または可能性がありますeth0)に転送できるように、通常と次の設定を行いppp0ました。sysctl net.ipv4.ip_forward=1/etc/network/interfaces

auto lxcbr0

iface lxcbr0 inet static
        address 192.168.56.1
        netmask 255.255.255.0
        bridge_ports none
        bridge_fd 0
        bridge_maxwait 0
        # XXX: no --out-interface
        up iptables -t nat -A POSTROUTING -j MASQUERADE
        down iptables -t nat -D POSTROUTING -j MASQUERADE

NetworkManagerを使用してインターネットに接続します。これまでは起動を試みてfossil uiこの127.0.0.1設定に接続すると、クライアントアドレスが別のサブネットから来ていることがわかるまで正常に機能しました。

たとえば、次のPerlスクリプトは次のようになります。

#!/usr/bin/perl
use 5.020;
use IO::Socket::INET;
say IO::Socket::INET::->new(
        Proto=>"tcp", Listen=>0,
        LocalAddr=>"127.0.0.1:8080",
        ReuseAddr=>1, ReusePort=>1,
)->accept->peerhost;

127.0.0.1接続に使用すると通常は印刷されますがnc 127.0.0.1 8080(他のコンピュータでも同様)、このラップトップでは印刷されます(実際には192.168.1.11現在のデフォルトパスがあるアドレスです)。wlan0

127.0.0.0/8viaに特別なパスを追加しようとしましたが、lo何も変更されませんでした。

localhost接続が実際にlocalhostから来たかのように機能するようにするにはどうすればよいですか?

答え1

! --out-interface loここにNATファイアウォールルールが追加されました。これで、loアクセスは一般的な法律に従って管理され、迷彩の対象にはなりません(そうしてはいけません)。

関連情報