Eu corro o cliente openvpn no meu laptop e executo o servidor openvpn no servidor remoto (ec2 ou aliyun). Eu quero todos os tráfegos passar por servidor openvpn. Quando a conexão é configurada entre o laptop e o servidor openvpn, não consigo visitar nenhuma Internet com a mensagem no lado do servidor:
client/131.202.160.31:59288 MULTI: bad source address from client [131.202.160.31], packet dropped
131.202.160.31 é o endereço do meu laptop. A informação da rota no servidor é:
root@iZbp15fejv9adv7o3izfm1Z:~# ip route show
default via 172.16.63.253 dev eth0
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
172.16.48.0/20 dev eth0 proto kernel scope link src 172.16.62.150
root@iZbp15fejv9adv7o3izfm1Z:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:16:3e:0e:1c:43
inet addr:172.16.62.150 Bcast:172.16.63.255 Mask:255.255.240.0
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255
Algumas páginas relacionadas são Redirecionar todo o tráfego via openvpn e AskUbuntu endereço de origem inválido e Explicação .
A explicação é muito clara, mas ainda estou muito confusa. 1) O erro mostra que o servidor openvpn não sabe como encaminhar um pacote, e é porque há um trabalho de sub-rede por trás do cliente VPN. No meu caso, é apenas um único cliente de laptop que executa o cliente openvpn.
2) Eu não estou familiarizado com a rede. Alguém pode fornecer um exemplo para a configuração do ccd no server.conf (por exemplo, máscaras, iroute)? Parece que esta configuração irá incluir os endereços do meu laptop. No meu caso, o endereço do meu laptop é dinâmico e, com frequência, seria movimentado.
O server.conf
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key # This file should be kept secret
dh dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
;push "dhcp-option DNS 208.67.222.222"
;push "dhcp-option DNS 208.67.220.220"
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 5
;mute 20
push "redirect-gateway def1"
push "dhcp-option DNS 10.8.0.1" #The result is the same even I use the openDNS
e
root@iZbp15fejv9adv7o3izfm1Z:/etc/openvpn# iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 10.8.0.0/24 anywhere
Eu adiciono as seguintes instruções no final do /etc/rc.local
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
service dnsmasq restart
exit 0