我在使 MT 与 OpenVPN 服务器 (Debian) 配合使用时遇到了一些问题。我可以成功连接到 OVPN 服务器,但流量不会通过 OVPN 服务器路由。这是我的配置。
设置 -https://i.stack.imgur.com/AAH9Y.jpg
OpenVPN 服务器(Debian/Linux)配置
# 猫/etc/openvpn/server.conf 本地 95.2.171.3 端口 1194 协议 TCP 开发调谐 ca 证书 证书服务器.crt 密钥服务器.key dh dh.pem 服务器 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt 客户端配置目录 ccd 路由 192.168.81.0/24 255.255.255.0 保持活动 10 120 tun-mtu 1500 mssfix 1450 密码 AES-256-CBC 验证 sha1 持久密钥 坚持-tun 状态 /var/log/openvpn-status.log 日志附加 /var/log/openvpn.log 动词 5 crl 验证 /etc/openvpn/easy-rsa/pki/crl.pem # 猫/etc/openvpn/ccd/客户端 iroute 192.168.81.0 255.255.255.0 10.8.0.2 ifconfig-推 10.8.0.2 10.8.0.1 # 猫/proc/sys/net/ipv4/ip_forward 1 #netstat -an |复制代码 tcp 0 0 95.2.171.3:1194 0.0.0.0:* 侦听 tcp 0 0 95.2.171.3:1194 81.190.190.100:62973 已建立 # ifconfig eth0 链路封装:以太网 HWaddr 20:cf:30:f2:a8:76 inet 地址:95.2.171.3 Bcast:95.2.171.31 掩码:255.255.255.224 inet6 地址:fe80::22cf:30ff:fef2:a876/64 范围:链接 上行广播运行多播 MTU:1500 度量:1 RX 数据包:255189 错误:0 丢弃:0 超限:0 帧:0 TX 数据包:333054 错误:0 丢弃:0 超限:0 载波:0 碰撞:0 txqueuelen:1000 RX 字节:34521411 (32.9 MiB) TX 字节:367074147 (350.0 MiB) 中断:26 基址:0x8000 lo 链路封装:本地环回 inet 地址:127.0.0.1 掩码:255.0.0.0 inet6 地址:::1/128 范围:主机 上行环回运行 MTU:16436 度量:1 RX 数据包:15579 错误:0 丢弃:0 超限:0 帧:0 TX 数据包:15579 错误:0 丢弃:0 超限:0 载波:0 碰撞:0 txqueuelen:0 RX 字节:1326071(1.2 MiB)TX 字节:1326071(1.2 MiB) tun0 链接封装:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet 地址:10.8.0.1 PtP:10.8.0.2 掩码:255.255.255.255 UP POINTOPOINT 正在运行 NOARP 多播 MTU:1500 度量:1 RX 数据包:57 错误:0 丢弃:0 超限:0 帧:0 TX 数据包:6 错误:0 丢弃:0 超限:0 载波:0 碰撞:0 txqueuelen:100 RX 字节:6669(6.5 KiB)TX 字节:504(504.0 B) # netstat -rn 内核 IP 路由表 目标网关 Genmask 标志 MSS 窗口 irtt Iface 10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0 95.2.171.0 0.0.0.0 255.255.255.224 U 0 0 0 eth0 192.168.81.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0 10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0 0.0.0.0 95.2.171.30 0.0.0.0 UG 0 0 0 eth0 # iptables -S -P 输入接受 -P 转发接受 -P 输出接受 -A 输入-i lo -j 接受 -A 输入 -d 127.0.0.0/8 -i !lo -j REJECT --拒绝 icmp 端口不可达 -A 输入-i tun0 -j 接受 -A 输入 -m 状态 --状态相关,已建立 -j 接受 -A 输入-p tcp -m tcp --dport 1194 -j 接受 -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7 -A 输入 -j 拒绝 --拒绝 icmp 端口不可达 -A 输出 -j 接受 # iptables -t nat -S -P 预路由接受 -P 路由后接受 -P 输出接受 -A POSTROUTING -s 10.8.0.0/24 -j SNAT --到源 95.2.171.3 -A POSTROUTING -s 10.8.0.0/24 -j SNAT --到源 95.2.171.3 -A POSTROUTING -s 10.8.0.0/24 -j SNAT --到源 95.2.171.3 # ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84)字节数据。 来自 8.8.8.8 的 64 字节:icmp_req=1 ttl=55 时间=12.9 毫秒 来自 8.8.8.8 的 64 字节:icmp_req=2 ttl=55 时间=12.8 毫秒
这是我在 OpenVPN 服务器(Debian/Linux)上的所有配置。
OpenVPN 客户端(Mikrotik RouterOS 6)配置
/界面打印 标志:D - 动态,X - 禁用,R - 运行,S - 从属 # 名称类型实际 MTU L2MTU 最大 L2MTU MAC 地址 0 R 以太1 以太 1500 1600 4076 D4:CA:6D:31:14:F4 1 S 以太2 以太 1500 1598 2028 D4:CA:6D:31:14:F5 2 S 以太3 以太 1500 1598 2028 D4:CA:6D:31:14:F6 3 S 以太4 以太 1500 1598 2028 D4:CA:6D:31:14:F7 4 S 以太5 以太 1500 1598 2028 D4:CA:6D:31:14:F8 5 RS WLAN1 WLAN 1500 1600 D4:CA:6D:31:14:F9 6 R 桥1桥 1500 1598 D4:CA:6D:31:14:F5 7 R ovpn-输出1 ovpn-输出 1500 FE:3E:27:7D:61:8C /接口桥打印 标志:X - 已禁用,R - 正在运行 0 R 名称=“bridge1” mtu=自动 实际mtu=1500 l2mtu=1598 arp=启用 mac地址=D4:CA:6D:31:14:F5 协议模式=rstp 优先级=0x8000 自动mac=是 管理mac=00:00:00:00:00:00 最大消息年龄=20s 转发延迟=15s 传输保持计数=6 老化时间=5m /接口桥端口打印 标志:X - 禁用,I - 非活动,D - 动态 # 接口桥优先级路径成本范围 0 I ether2 bridge1 0x80 10 无 1 我 ether3 桥接1 0x80 10 无 2 我 ether4 桥接1 0x80 10 无 3 我 ether5 桥接1 0x80 10 无 4 wlan1 桥接1 0x80 10 无 /ip 地址打印 标志:X - 禁用,I - 无效,D - 动态 # 地址网络接口 0 192.168.81.1/24 192.168.81.0 桥接1 1 D 192.168.7.200/24 192.168.7.0 以太1 2 D 10.8.0.2/32 10.8.0.1 ovpn-out1 /ip 防火墙 nat 打印 标志:X - 禁用,I - 无效,D - 动态 0 链 = srcnat 动作 = 伪装 到地址 = 0.0.0.0 出接口 = ether1 日志 = 无日志前缀 =“” /ip 路由打印 标志:X - 禁用、A - 活动、D - 动态、C - 连接、S - 静态、r - rip、b - bgp、o - ospf、m - mme、B - 黑洞、U - 不可达、P - 禁止 # DST-地址 PREF-SRC 网关距离 0 广告 0.0.0.0/0 192.168.7.1 0 1 ADC 10.8.0.1/32 10.8.0.2 ovpn-out1 0 2 ADC 192.168.7.0/24 192.168.7.200 以太1 0 3 ADC 192.168.81.0/24 192.168.81.1 桥接1 0 /接口 ovpn 客户端打印 标志:X - 已禁用,R - 正在运行 0 R 名称=“ovpn-out1” mac 地址=FE:3E:27:7D:61:8C 最大 mtu=1500 连接到=195.13.171.3 端口=1194 模式=ip 用户=“客户端” 密码=“” 配置文件=默认 证书=客户端 身份验证=sha1 密码=aes256 添加默认路由=否 /ping 10.8.0.1 SEQ 主机大小 TTL 时间状态 0 10.8.0.1 56 64 6毫秒 1 10.8.0.1 56 64 9毫秒 2 10.8.0.1 56 64 7毫秒 3 10.8.0.1 56 64 6毫秒 发送=4 接收=4 数据包丢失=0% 最小 rtt=6ms 平均 rtt=7ms 最大 rtt=9ms
如您所见,我可以从 Mikrotik ping OpenVPN 服务器。但是当我从本地 PC 使用互联网时,它显示 81.190.190.100 IP 地址,而不是我想要看到的 IP 地址 - OpenVPN 服务器 IP - 95.2.171.3。
我可以从笔记本电脑 (192.168.81.100/24) 成功 ping/traceroute 到 10.8.0.1,但不明白为什么它没有通过 VPN 隧道路由。我想我在服务器 (Linux) 或客户端 (mikrotik) 上的路由方面遗漏了一些东西。
谢谢你的帮助!我玩这个已经有一段时间了,但无法运行它 :(
祝你有美好的一天!
答案1
您的客户端未通过 OVPN 隧道路由,因为 mikrotik 上没有路由(默认网关)!
因此,在 mikrotik 上添加另一个网关,其路由标记的目的地为 OVPN 服务器 10.8.0.1
/ip route add dst-address=0.0.0.0/0 gateway=10.8.0.1 routing-mark=clientmark
当然,你应该为路由标记添加一个 mangle 规则,例如:
/ip firewall mangle add action=mark-routing chain=prerouting src-address=192.168.81.0/24 new-routing-mark=clientmark
还应该有一个针对客户端(源地址 192.168.81.0/24)的 nat 规则。
ip firewall nat add action=masquerade chain=srcnat src-address=192.168.81.0/24 out-interface=ovpn-out1