我试图在树莓派上设置一个openvpn服务器,作为公路连接的端点,但是设备位于networking上,而不是networking上任何机器的网关,我怀疑这是问题。
我已经看了很多教程,正确地连接了vpn,并且客户端路由是正常的,因为我可以通过隧道连接到raspi,但是如果在networking上ping任何其他东西,我会请求超时。 我唯一的区别是我使用的是TCP连接,而不是UDP连接,但是已经将防火墙规则调整为套件。
我已经尝试了许多不同的iptables规则,启用转发,甚至已经在cyberoam上安装了一个静态路由来尝试做这个工作。
我的configuration如下。
服务器…
local 192.168.1.84 port 1194 proto tcp dev tun ca /etc/openvpn/ca.crt # generated keys cert /etc/openvpn/folkarch.crt key /etc/openvpn/folkarch.key # keep secret dh /etc/openvpn/dh2048.pem server 10.8.0.0 255.255.255.0 # internal tun0 connection IP ifconfig 10.8.0.1 10.8.0.2 ifconfig-pool-persist ipp.txt push "route 10.8.0.1 255.255.255.255" #route 192.168.1.0 255.255.255.0 push "route 10.8.0.0 255.255.255.0" push "route 192.168.1.0 255.255.255.0" #push dhcp-option DNS 8.8.8.8" push "redirect-gateway def1" keepalive 30 240 comp-lzo # Compression - must be turned on at both end persist-key persist-tun status log/openvpn-status.log verb 3 # verbose mode client-to-client duplicate-cn
客户端configuration匹配,没有什么太多..
firewall.sh
#!/bin/bash #/sbin/iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to-source 192.168.1.84 /sbin/iptables -A INPUT -i tun+ -j ACCEPT /sbin/iptables -A OUTPUT -o tun+ -j ACCEPT /sbin/iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE /sbin/iptables -I FORWARD -i tun0 -o eth0 -s 10.8.0.0/24 -d 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT /sbin/iptables -I FORWARD -i tun0 -o eth0 -s 10.8.0.0/24 -d 10.1.0.0/8 -m conntrack --ctstate NEW -j ACCEPT /sbin/iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 1194 -j ACCEPT /sbin/iptables -A FORWARD -i tun+ -j ACCEPT /sbin/iptables -A FORWARD -i tun+ -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT /sbin/iptables -A FORWARD -i eth0 -o tun+ -m state --state RELATED,ESTABLISHED -j ACCEPT
第一个注释行是另一个使它工作的尝试..这在/ etc / network / interfaces中被称为pre-up。
静态路由是10.8.0.0/24,网关192.168.1.84,在cyberoam上的PortA。
我真的被困在这里,正如我所说,我可以愉快地到达192.168.1.84设备,但没有其他的networking。
有任何想法吗??
彼得。
附加信息…从连接的客户端路由表(在这种情况下是mac)。
% netstat -rn pnunn@Peters-MacBook-Pro Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire default 192.168.0.1 UGSc 68 5 en0 default 10.8.0.5 UGScI 3 0 utun0 10.8/24 10.8.0.5 UGSc 1 0 utun0 10.8.0.5 10.8.0.6 UHr 7 0 utun0 10.8.0.5/32 link#19 UCS 1 0 utun0 127 127.0.0.1 UCS 1 0 lo0 127.0.0.1 127.0.0.1 UH 6 1179613 lo0 169.254 link#4 UCS 1 0 en0 192.168.0 link#4 UCS 4 0 en0 192.168.0.1/32 link#4 UCS 2 0 en0 192.168.0.1 c0:3f:e:e4:c:c UHLWIir 70 902 en0 375 192.168.0.4 link#4 UHLWIi 1 7 en0 192.168.0.5/32 link#4 UCS 2 0 en0 192.168.0.5 34:36:3b:cd:ca:20 UHLWIi 1 7 lo0 192.168.0.6 link#4 UHLWIi 1 0 en0 192.168.0.255 link#4 UHLWbI 1 894 en0 192.168.1 10.8.0.5 UGSc 2 5 utun0 255.255.255.255/32 link#4 UCS 2 0 en0 255.255.255.255 link#4 UHLWbI 1 13 en0 255.255.255.255/32 link#19 UCSI 1 0 utun0
VPN客户端必须有到达networking的路由,但是networking上的机器也必须有路由来发回响应。
所以你必须指示本地networking上的机器到达VPN客户端,他们必须将数据包发送到树莓派IP地址(192.168.1.84)
要确认这是问题,请在networking机器上添加路由:通过192.168.1.84路由10.8.0.0/24
在Windows上,您可以使用命令提示符(以pipe理员身份)将其添加
route add 10.8.0.0 MASK 255.255.255.0 192.168.1.84
在Linux上
sudo ip route add 10.8.0.0/24 via 192.168.1.84
如果这允许此机器进行通信,则可以在充当networking网关的设备上添加路由。