Я настроил openvpn на моем пи и столкнулся с небольшой проблемой. Я могу подключиться к серверу VPN и просто проверить ping, а также подключиться к другим машинам в моей локальной сети. Однако при подключении к VPN я не могу связаться с внешним миром (по имени или по IP).

вот подробности:

На сервере интерфейс tun0:

tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 10.8.0.1  netmask 255.255.255.255  destination 10.8.0.2
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 100  (UNSPEC)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Я могу пинговать это просто отлично:

# ping -c 3 10.8.0.1
PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
64 bytes from 10.8.0.1: icmp_seq=1 ttl=64 time=0.159 ms
64 bytes from 10.8.0.1: icmp_seq=2 ttl=64 time=0.155 ms
64 bytes from 10.8.0.1: icmp_seq=3 ttl=64 time=0.156 ms

--- 10.8.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms

Таблица маршрутизации

# ip route show
default via 192.168.1.1 dev eth0  metric 204 
10.8.0.0/24 via 10.8.0.2 dev tun0 
10.8.0.2 dev tun0  proto kernel  scope link  src 10.8.0.1 
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.6  metric 204 

У меня также есть IP-трафик:

net.ipv4.ip_forward = 1

У меня нет никаких пользовательских правил iptables (о которых я знаю).

На клиенте я могу подключиться к VPN. Вот мой tun0:

tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 10.8.0.6  netmask 255.255.255.255  destination 10.8.0.5
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 100  (UNSPEC)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 21  bytes 1527 (1.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

И на клиенте я могу пинговать это:

sudo ping -c 3 10.8.0.6
PING 10.8.0.6 (10.8.0.6) 56(84) bytes of data.
64 bytes from 10.8.0.6: icmp_seq=1 ttl=64 time=0.035 ms
64 bytes from 10.8.0.6: icmp_seq=2 ttl=64 time=0.026 ms
64 bytes from 10.8.0.6: icmp_seq=3 ttl=64 time=0.032 ms

--- 10.8.0.6 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.026/0.031/0.035/0.003 ms

Я могу ssh с клиента на другой сервер в моей локальной сети (192.168.1.x), однако я не могу достичь ничего вне моей локальной сети.

Вот некоторые из журналов сервера в нижней части этого списка: https://gist.github.com/coleifer/6ef95c3008f130249933/edit

У меня откровенно нет идей! Я не думаю, что это мой клиент, потому что и мой ноутбук, и мой телефон (у которого есть клиент openvpn) ведут себя одинаково.

У меня был установлен OpenVPN на этом пи до использования Debian, и он работал, так что я не думаю, что это мой роутер, но, конечно, все возможно.

1 ответ1

1

Я исправил это, добавив два правила iptables:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables -a FORWARD -i tun0 -j ACCEPT

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .