web-dev-qa-db-ja.com

静的パブリックIPをコンピューターに割り当てる

CGNATの背後にあるコンピューターにパブリック静的IPを割り当てる方法はありますか?
私は Hamachi のパフォーマンスのようなものを探していますが、HamachiはプライベートLANにアクセスするための専用クライアント(ユーザー名とパスワード付き)を必要とします。

これは私が最初に考えたものです: Flowchart example

どうすればそれを達成できますか?
ネットワークアダプターを作成してパブリックIPを公開するサービスはありますか?

1
Nick LeBlanc

ネットワークアダプタを作成してパブリックIPを公開するサービスはありますか?

はい、それはVPNと呼ばれています。

  • 2つ以上のIPアドレスを持つリモートVPNサーバーがある場合は、サーバーの「イーサネット」インターフェースからそれらのアドレスの1つを割り当て解除できます。 VPN経由でルーティングします。そしてそれをクライアントマシンに直接割り当てます。 (IPv4の場合は、サーバーでProxy-ARPを有効にする必要があります。)

    ip addr del <addr>/xx dev eth0                    # Unassign from local OS
    ip neigh add proxy <addr> dev eth0                # Trick local router
    ip route add <addr>/32 dev wg0                    # Route via WireGuard
    wg set wg0 peer <pubkey> allowed-ips <addr>/32    # Inform WireGuard
    

    これには、WireGuard、Tinc、OpenVPN、ZeroTier、IPsec/GRE、IPIP、PPTP、PPP-over-SSHなどのほぼすべてのVPNプロトコルを使用できます。

    これは、アドレスが異なるIPバージョン用であっても機能します。たとえば、VPN接続にIPv6を使用できる場合は、サーバーの最後に残っているIPv4アドレスを削除して、代わりにホームシステムに使用できます。

    (OpenVPN TUNの場合、allowed-ipsに相当するのは、サーバーのCCDディレクトリの「iroute」設定です。TincTUNの場合、クライアント側の「Subnet =」設定です。ほとんどのTAP、つまりレイヤー- 2 VPNsこれは、「ip route add <addr> via <client>」として直接指定されます。GREやPPP追加はまったく必要ありません。)などのポイントツーポイントトンネルの場合。

  • 1つのみ IPアドレスを持つリモートVPNサーバーがある場合でも、すべてのインバウンド接続をDNAT(ポートフォワード)して、代わりにVPNクライアントのプライベートIPアドレスに到達させることができます。

    これは、ホームLANポート転送と同じように機能します。

    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination <VpnClientIP>
    

    サーバーそれ自体がさまざまなVery Big Cloudプロバイダーなどの1:1 NATの背後にある場合でも、この方法を使用できます。繰り返しますが、文字通り利用可能なVPNプロトコルを使用できます。

  • 一部の商用VPNプロバイダーも、パブリックIPアドレスを予約するプランを提供していますが、通常、そのアドレスをクライアントシステムに直接ルーティングする代わりに、1:1 NAT)を実行すると思います。

3
user1686