NATとフィルタリングをバイパスするためにSSH VPN(ポート443経由)を作成しようとしています。使っていますこれマップ時間。オペレーティングシステムはすべてDebianテストを受けました。
両端にトンネルデバイスを作成し、アドレスを割り当てます。
sshコマンド(マシンBのルート):ssh -w 0:0 MACHINE_A_PUBLIC_IP -p 443
ルート用のシェルを開く
サーバー(マシンA)では、PermitTunnelがyesに設定されてcat /proc/sys/net/ipv4/ip_forward
返されます。1
機械A:
ip link set tun0 up
ip addr add 10.0.0.100/32 peer 10.0.0.200 dev tun0
機械B:
ip link set tun0 up
ip addr add 10.0.0.200/32 peer 10.0.0.100 dev tun0
結果:
機械A:
36: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 500
link/none
inet 10.0.0.100 peer 10.0.0.200/32 scope global tun0
valid_lft forever preferred_lft forever
inet6 fe80::9210:8322:2382:e696/64 scope link flags 800
valid_lft forever preferred_lft forever
機械B:
32: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 500
link/none
inet 10.0.0.200 peer 10.0.0.100/32 scope global tun0
valid_lft forever preferred_lft forever
inet6 fe80::bd70:5f4d:c8f5:aa2c/64 scope link flags 800
valid_lft forever preferred_lft forever
なぜPingを送信できないのですか?
確実なトラブルシューティング手順を見逃しましたか?
私の背後にあるフィルタではないでしょうか?
編集する:
マシンA(サーバー)からip route
:
default via 192.168.1.1 dev eth1 proto static metric 100
10.0.0.200 dev tun0 proto kernel scope link src 10.0.0.100
192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.126 metric 100
192.168.100.0/24 dev virbr1 proto kernel scope link src 192.168.100.1 linkdown
192.168.105.0/24 dev virbr4 proto kernel scope link src 192.168.105.1 linkdown
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
239.0.0.0/8 dev lo scope link
マシンB(クライアント)からip route
:
default via 192.168.1.1 dev wlp3s0 proto static metric 600
10.0.0.100 dev tun0 proto kernel scope link src 10.0.0.200
169.254.0.0/16 dev wlp3s0 scope link metric 1000
192.168.1.0/24 dev wlp3s0 proto kernel scope link src 192.168.1.136 metric 600
マシンB(クライアント)からping 10.0.0.100
:
PING 10.0.0.100 (10.0.0.100) 56(84) bytes of data.
^C
--- 10.0.0.100 ping statistics ---
10 packets transmitted, 0 received, 100% packet loss, time 9000ms
ping
サーバーの出力は同じで、それぞれ独自のインターフェイスをpingできます(マシンBは10.0.0.200をpingできます)(マシンAは10.0.0.100をpingできます)。
答え1
クライアントssh_configから:
Tunnel point-to-point
サーバーsshd_configから:
PermitTunnel point-to-point
次に、クライアント側で接続を確立します。
ssh \
-o PermitLocalCommand=yes \
-o LocalCommand="sudo ifconfig tun5 192.168.42.2 pointopoint 192.168.42.1 netmask 255.255.255.0" \
-o ServerAliveInterval=60 \
-w 5:5 [email protected] \
'sudo ifconfig tun5 192.168.42.1 pointopoint 192.168.42.2 netmask 255.255.255.0; echo tun5 ready'
ctr-cで終了できます。