状況があります。
- Debian(K)がインストールされているコンピュータは、ネットワーク192.168.1.0/24を割り当てるルータ(A)に接続されます。
- ネットワーク172.16.1.0/30を割り当て、そのネットワーク上でpptpサーバーを実行し、NATを有効にする別のルーター(B)(「白」IP付き)があります。
- pptp クライアントは、IP 172.16.1.2 を使用して ppp1 インターフェイスを生成する "K" にインストールされます (ただし、何らかの理由でマスク /32 は /32 から "to node" に向かう Keenetic("B") パスにもあります。) 。
- 接続が確立され、pingが成功します。問題は「三角形」パスです(まだそうだと思います)。
- ネットワーク「A」から「K」に接続すると(SSHなど)、すべてが正常に機能します(eth0 - ネットワーク「A」 - デフォルトパス)。
- ルータ「B」には、インターネット(特定のポート)から「K」に接続を転送するnatがあります。
- パケットでは、「ソース」はルータの送信元に変更されません。
- しかし、「K」にはeth0からppp1へのトラフィックの送信を行うhttp-proxyがあるため、これは問題を完全に解決しません。
- プロキシ設定(3proxy)で「入力」および「出力」IPを指定しました。
たぶん動作する必要がありますが、そうではありません。 eth0を介してインターネットにアクセスすることは7x+であるため、デフォルトパスを変更することはオプションではありません。 ppp1の接続を許可し、eth0自体を介して接続を作成する同じマシンに別のopenvpnサーバーをインストールする予定です。
設定されている場合:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.20 netmask 255.255.255.0 broadcast 192.168.1.255
ether 02:02:20:02:47:8f txqueuelen 1000 (Ethernet)
RX packets 5248 bytes 343827 (335.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 512 bytes 54725 (53.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 37
ppp1: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1350
inet 172.16.1.2 netmask 255.255.255.255 destination 172.16.1.1
ppp txqueuelen 3 (Point-to-Point Protocol)
RX packets 8 bytes 118 (118.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 8 bytes 99 (99.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
/etc/3proxy/3proxy.cfg:
setgid 115
setuid 109
#nserver 192.168.1.1
nserver 172.16.1.1
nscache 65536
timeouts 1 5 30 60 180 1800 15 60
#In theory, from this point on, traffic should go through the ppp1 interface.
external 172.16.1.2
internal 192.168.1.20
users $/etc/3proxy/.proxyauth
daemon
log /var/log/3proxy/3proxy.log D
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
auth cache strong
proxy -n -p8080 -a
さらに、3proxyによって送信されたDNSトラフィックはppp1(tcpdumpを使用して監視)を介して自由に送信されます(送信および受信)。
答え1
これは、エージェントに「natin」pptpを担当する正しいモジュールがないためです。以下を試してください。
lsmod |grep nf_nat_pptp
モジュールが存在しない場合は、次のように入力する必要があります。
modprobe nf_nat_pptp
echo 'net.netfilter.nf_conntrack_helper=1' >> /etc/sysctl.conf
sysctl -p
この変更により、pptpトラフィックはプロキシを通過する必要があります。
後で再起動するときにモジュールを永久に有効にするには、次のようにモジュールファイルに追加する必要があります。
echo 'nf_nat_pptp' >> /etc/modules