我正在尝试在我的网络之间共享 vpn 连接,但没有成功。
我确实有一个办公室,里面有几台电脑,我们使用 iptables 和 DNS 服务器共享互联网连接,我们还有邮件和 FTP 服务器。我们的 ISP 不断更改规则,他们开始阻止一些端口,如 25、21 和 143。所以我能想到的最佳解决方案是使用带有静态 IP 地址的 vpn 服务,而不是我的 ISP IP 地址。
我确实需要本地网络中的所有计算机都使用 VPN IP 地址而不是我的 ISP IP 地址。
我的网络基础设施是这样的:
具有 2 个 NIC 的主 DNS 服务器:/etc/network/interfaces
自动 lo eth0 eth1 iface lo inet 环回 #互联网 iface eth0 inet 静态 地址 10.0.0.2 # DSL 调制解调器 网络掩码 255.255.255.192 网关 10.0.0.1 #当地的 iface eth1 inet 静态 地址10.0.1.1#本地网络 网络掩码 255.255.255.240
邮件服务器 /etc/network/interfaces
自动档 iface lo inet 环回 # 主网络接口 自动 eth0 iface eth0 inet 静态 地址 10.0.1.3 网络掩码 255.255.255.240 网关 10.0.1.1 /etc/resolv.conf 名称服务器 10.0.1.1
本地网络上的其他客户端
地址 10.0.1.x 网络掩码 255.255.255.240 网关 10.0.1.1 名称服务器 10.0.1.1
我找到了一种使用以下方法共享 VPN 连接的方法:
#禁用防火墙 iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X iptables -P 输入接受 iptables -P 转发接受 iptables -P 输出接受 WAN=eth0 VPN=tun0 LAN=eth1 echo 1 > /proc/sys/net/ipv4/ip_forward iptables --append FORWARD --in-interface $LAN -j ACCEPT iptables --table nat --append POSTROUTING --out-interface $WAN -j MASQUERADE iptables --table nat --append POSTROUTING --out-interface $VPN -j MASQUERADE[/CODE]
这样,我网络上的所有计算机都可以使用 vpn ip 地址访问互联网。
我需要的是端口转发一些端口:
- 53 从互联网到 10.0.1.1
- 80 从互联网到 10.0.1.2
- 110 来自互联网到 10.0.1.3
- 143 来自互联网到 10.0.1.3
- 25 从互联网到 10.0.1.3
iptables -L -v
链输入(策略接受107K数据包,53M字节) pkts 字节数 目标 协议 选择加入 退出 源 目标 链转发(策略接受 93343 个数据包,45M 字节) pkts 字节数 目标 协议 选择加入 退出 源 目标 117K 18M 接受全部 -- eth1 任何位置 任何位置 链输出(策略接受 131K 数据包,27M 字节) pkts 字节数 目标 协议 选择加入 退出 源 目标
iptables -L
链输入(策略接受) 目标 保护 优化 源 目标 链转发(策略接受) 目标 保护 优化 源 目标 接受所有 -- 任何地方 任何地方 链输出(策略接受) 目标 保护 优化 源 目标
路线-n
内核 IP 路由表 目标网关 Genmask 标志 指标参考使用 Iface 174.37.222.38 10.0.0.1 255.255.255.255 UGH 0 0 0 eth0 10.0.1.0 0.0.0.0 255.255.255.240 U 0 0 0 eth1 10.0.0.0 0.0.0.0 255.255.255.192 U 0 0 0 eth0 10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 tun0 0.0.0.0 10.10.11.1 128.0.0.0 UG 0 0 0 tun0 128.0.0.0 10.10.11.1 128.0.0.0 UG 0 0 0 tun0 0.0.0.0 10.0.0.1 0.0.0.0 UG 100 0 0 eth0
是否配置
eth0 链路封装:以太网 HWaddr 00:30:4f:1c:49:f8 inet 地址:10.0.0.2 Bcast:10.0.0.63 掩码:255.255.255.192 inet6 地址:fe80::230:4fff:fe1c:49f8/64 范围:链接 上行广播运行多播 MTU:1500 度量:1 RX 数据包:107511 错误:0 丢弃:0 超限:0 帧:0 TX 数据包:129620 错误:0 丢弃:0 超限:0 载波:0 碰撞:0 txqueuelen:1000 RX 字节:56746295 (56.7 MB) TX 字节:29161617 (29.1 MB) 中断:11 基址:0xc000 eth1 链路封装:以太网 HWaddr 00:08:54:41:42:88 inet 地址:10.0.1.1 Bcast:10.0.1.15 掩码:255.255.255.240 inet6 地址:fe80::208:54ff:fe41:4288/64 范围:链接 上行广播运行多播 MTU:1500 度量:1 RX 数据包:132276 错误:0 丢弃:0 超限:0 帧:0 TX 数据包:105899 错误:0 丢弃:0 超限:0 载波:0 碰撞:0 txqueuelen:1000 RX 字节数:22646823 (22.6 MB) TX 字节数:50537547 (50.5 MB) 中断:10 基址:0xc400 lo 链路封装:本地环回 inet 地址:127.0.0.1 掩码:255.0.0.0 inet6 地址:::1/128 范围:主机 上行环回运行 MTU:16436 度量:1 RX 数据包:1501 错误:0 丢弃:0 超限:0 帧:0 TX 数据包:1501 错误:0 丢弃:0 超限:0 载波:0 碰撞:0 txqueuelen:0 RX 字节:192540 (192.5 KB) TX 字节:192540 (192.5 KB) tun0 链接封装:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet 地址:10.204.139.115 PtP:10.204.139.115 掩码:255.0.0.0 UP POINTOPOINT 正在运行 NOARP 多播 MTU:1500 度量:1 RX 数据包:101518 错误:0 丢弃:0 超限:0 帧:0 TX 数据包:127403 错误:0 丢弃:0 超限:0 载波:0 碰撞:0 txqueuelen:100 RX 字节:46913004 (46.9 MB) TX 字节:19594649 (19.5 MB)
答案1
在您的网关上尝试以下规则:
-A PREROUTING -i $VPN_INTERFACE -p tcp -m tcp --dport 80 -j DNAT --到目的地 $INTERNAL_IP_DESTINATION:80 -A POSTROUTING -o $VPN_INTERFACE -j SNAT --to-source $VPN_IP_OF_SERVER -A POSTROUTING -o $LAN_INTERFACE -j SNAT --to-source $LAN_IP_OF_SERVER
1. 进行端口转发。2
. 进行源 nat,这样从 VPN 发出的每个数据包都使用服务器 IP。3
. 将数据包转发到内部 IP,并具有服务器 lan ip 的源 nat