我希望有人能帮帮忙...
我想配置 OpenVPN-AS(即 OpenVPN 访问服务器,而非 OpenVPN)以在我的 VPS 上运行。VPS 是运行 Ubunto 10.04 LTS 的 KVM,配置非常原始。OpenVPN-AS 的安装同样只带有极少的“特色”。
该服务器有两个接口(均为 DHCP,eth1 没有配置默认网关,但有一个可用):- eth0(不位于美国地理位置的公共 IP 地址),以及 - eth1(可通过位于美国的路由器进行 NAT 的私有 IP 地址)
大多数流量(包括 OpenVPN 隧道 (UDP/1194))通过 eth0 进入,但隧道客户端应通过 eth1“出去”,以获得美国 IP 地址的好处。我认为有两个独立的问题:1) 配置 IP,以便隧道客户端通过 NAT 路由器离开网关 2) 配置 OpenVPN-AS,以便客户端使用该网关访问互联网
文件 /etc/network/interfaces 如下:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet dhcp
# The internal (private) network interface
auto eth1
iface eth1 inet dhcp
up ip route add default via 172.16.0.254 dev eth1 table 100
down ip route del default via 172.16.0.254 dev eth1 table 100
up ip rule add from 172.16.0.0/16 iif eth1 lookup 100
down ip rule del from 172.16.0.0/16 iif eth1 lookup 100
up iptables -t nat -A POSTROUTING -s 5.5.0.0/20 -j SNAT --to-source 172.16.191.125
down iptables -t nat -D POSTROUTING -s 5.5.0.0/20 -j SNAT --to-source 172.16.191.125
网络如下:
root@us-tunnel:~# ifconfig | grep -A 1 encap
as0t0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:5.5.0.1 P-t-P:5.5.0.1 Mask:255.255.248.0
--
as0t1 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:5.5.8.1 P-t-P:5.5.8.1 Mask:255.255.248.0
--
eth0 Link encap:Ethernet HWaddr 00:16:3c:34:01:20
inet addr:209.141.60.114 Bcast:209.141.60.255 Mask:255.255.255.0
--
eth1 Link encap:Ethernet HWaddr 00:16:3c:55:84:81
inet addr:172.16.191.125 Bcast:172.16.255.255 Mask:255.255.0.0
--
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
路由表如下:
root@us-tunnel:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
209.141.60.0 * 255.255.255.0 U 0 0 0 eth0
5.5.0.0 * 255.255.248.0 U 0 0 0 as0t0
5.5.8.0 * 255.255.248.0 U 0 0 0 as0t1
172.16.0.0 * 255.255.0.0 U 0 0 0 eth1
default 209.141.60.1 0.0.0.0 UG 100 0 0 eth0
答案1
您需要执行几个步骤才能使其正常工作。
首先,您必须在配置文件中设置路由,以通过客户端适配器引导客户端流量。
您可以通过在客户端配置文件中添加“route”行来实现这一点,或者通过添加
"--pull"
到客户端配置,然后将您的路线添加到服务器配置。
"push route 0.0.0.0 5.5.0.1"
"push route 0.0.0.0 5.5.8.1"
其次,您需要配置您的 iptables 以允许来自 vpn 网络的传入数据包,并在服务器端启用 masqurade 和 nat 转发。
启用数据包转发和 Nat
在内核中启用数据包转发
echo 1 > /proc/sys/net/ipv4/ip_forward
在 iptables 中启用 NAT
sudo iptables --table nat --append POSTROUTING --out-interface eth1 -j MASQUERADE
启用 VPN 接口转发
sudo iptables --append FORWARD --in-interface as0t0 -j ACCEPT sudo iptables --append FORWARD --in-interface as0t1 -j ACCEPT
这是路由端的基本配置,如果您需要更详细的帮助,请随时发表评论。