我在使 MT 與 OpenVPN 伺服器 (Debian) 配合使用時遇到一些問題。我可以成功連接到 OVPN 伺服器,但流量未透過 OVPN 伺服器路由。這是我的配置。
設定 -https://i.stack.imgur.com/AAH9Y.jpg
OpenVPN 伺服器 (Debian/Linux) 配置
# cat /etc/openvpn/server.conf 本地 95.2.171.3 埠 1194 原始 TCP 開發屯 ca.crt 證書伺服器.crt 金鑰伺服器.key DH-PEM 伺服器 10.8.0.0 255.255.255.0 ifconfig-池-堅持 ipp.txt 用戶端配置目錄 ccd 路線 192.168.81.0/24 255.255.255.0 保持活動 10 120 屯-MTU 1500 修復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/client 路由 192.168.81.0 255.255.255.0 10.8.0.2 ifconfig-push 10.8.0.2 10.8.0.1 # 貓 /proc/sys/net/ipv4/ip_forward 1 # netstat -an |正規表示式 1194 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 已建立 # 如果配置 eth0 連結 encap:乙太網路 HWaddr 20:cf:30:f2:a8:76 inet 位址:95.2.171.3 廣播: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 連結 encap:本地環回 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 連結 encap:UNSPEC HWaddr 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 上點運行 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 INPUT -d 127.0.0.0/8 -i !lo -j REJECT --reject-with icmp-port-unreachable -A 輸入 -i tun0 -j 接受 -A 輸入 -m 狀態 --state 相關,已建立 -j 接受 -A 輸入 -p tcp -m tcp --dport 1194 -j 接受 -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables被拒絕:" --log-level 7 -A 輸入 -j 拒絕 --reject-with icmp-port-unreachable -A 輸出 -j 接受 # iptables -t nat -S -P 預路由接受 -P 後路由接受 -P 輸出接受 -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 95.2.171.3 -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 95.2.171.3 -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 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 ms 8.8.8.8 中的 64 位元組:icmp_req=2 ttl=55 時間=12.8 ms
這是我在 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 無線區域網路1 無線區域網路 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 auto-mac =是管理-mac =00:00:00:00:00:00 最大訊息年齡=20s 轉送延遲=15s 傳送保持計數=6 老化時間=5m /interface 橋接連接埠列印 標誌:X - 停用、I - 不活動、D - 動態 # 介面橋優先權路徑成本範圍 0 I ether2 橋 1 0x80 10 無 1 I ether3 橋 1 0x80 10 無 2 I ether4 橋 1 0x80 10 無 3 I 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 2D 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 /interface ovpn-客戶端列印 標誌:X - 停用,R - 運行 0 R 名稱 =“ovpn-out1”mac 位址 = FE:3E:27:7D:61:8C max-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% min-rtt=6ms avg-rtt=7ms max-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
另外應該有一個針對客戶端的 nat 規則(src-addresses 192.168.81.0/24)。
ip firewall nat add action=masquerade chain=srcnat src-address=192.168.81.0/24 out-interface=ovpn-out1