AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[tunneling](server)

Martin Hope
Nicolò
Asked: 2022-02-04 06:45:39 +0800 CST

已解决 - 路由器作为 WireGuard 客户端 | 外部用户 IP 显示为家庭服务器上 WireGuard 隧道的本地 IP [EdgeRouter]

  • 0

我已将我的 EdgeRouter-X 设置为 WireGuard 客户端(使用 IPv6),以便我的公共 IP 显示为 WireGuard 服务器的公共 IP。

这是因为我想使用 OVH 的 IP 和 Anti-DDoS 来托管家庭服务器,而不是我自己的不受保护的公共 ip。

我有 4 个公共 IP:

22.22.22.22

33.33.33.33

44.44.44.44

55.55.55.55

我的连接图是这样的:

OVH VPS Wireguard Server WG0 Tunnel (LOCAL Tunnel 10.0.0.1) [Port forwarding with IPTables] <-----> (LOCAL Tunnel 10.0.0.2) EdgeRouter X

EdgeRouter-X (LOCAL 192.168.1.1) [Port forwarding with EdgeRouter] <-----> (LOCAL 192.168.1.10) HOME-SERVER

我正在通过 wg0 隧道将 OVH 的 VPS (1-65535) 的所有端口与 IPTables 转发到我的 EdgeRouter,然后转发到我的家庭服务器,这样就可以了。

问题是当用户连接到 22.22.22.22:80 时,他成功显示了网页,但他到服务器的 IP 是 10.0.0.1 而不是用户公共 IP。

这是我的 WG 服务器配置:

[Interface]

Address = 10.0.0.1/30

ListenPort = 51821

PrivateKey = CENSORED




### Client vpn

[Peer]

PublicKey = CENSORED

PresharedKey = CENSORED

AllowedIPs = 10.0.0.2/30

这是我的 WG 服务器 IPTables 配置,用于通过 WG0 将端口转发到 EdgeRouter:

# Generated by iptables-save v1.8.7 on Sun Jan  9 11:04:33 2022
*filter
:INPUT ACCEPT [971:145912]
:FORWARD ACCEPT [920:137172]
:OUTPUT ACCEPT [637:108812]
:f2b-sshd - [0:0]
COMMIT
# Completed on Sun Jan  9 11:04:33 2022
# Generated by iptables-save v1.8.7 on Sun Jan  9 11:04:33 2022
*nat
:PREROUTING ACCEPT [133:6792]
:INPUT ACCEPT [61:2272]
:OUTPUT ACCEPT [3:228]
:POSTROUTING ACCEPT [66:4011]
-A PREROUTING -i ens3 -p udp -m multiport --dports 1000:51820 -j DNAT --to-destination 10.0.0.2
-A PREROUTING -i ens3 -p udp -m multiport --dports 51822:65534 -j DNAT --to-destination 10.0.0.2
-A PREROUTING -i ens3 -p tcp -m multiport --dports 51822:65534 -j DNAT --to-destination 10.0.0.2
-A PREROUTING -i ens3 -p tcp -m multiport --dports 1000:51820 -j DNAT --to-destination 10.0.0.2
-A PREROUTING -i ens3 -p tcp -m multiport --dports 80,25,995,110,443,465,993,143 -j DNAT --to-destination 10.0.0.2
-A PREROUTING -i ens3 -p udp -m multiport --dports 80,25,995,110,443,465,993,143 -j DNAT --to-destination 10.0.0.2
-A POSTROUTING -j MASQUERADE
COMMIT
# Completed on Sun Jan  9 11:04:33 2022

这是我的 EdgeRouter-X 配置,带有 WG0 客户端和端口转发到家庭服务器:

 firewall {
     all-ping enable
     broadcast-ping disable
     group {
         address-group MY_PUBLIC {
             address 22.22.22.22
             address 33.33.33.33
             address 44.44.44.44
             address 55.55.55.55
         }
     }
     ipv6-name WANv6_IN {
         default-action drop
         description "WAN inbound traffic forwarded to LAN"
         enable-default-log
         rule 10 {
             action accept
             description "Allow established/related sessions"
             state {
                 established enable
                 related enable
             }
         }
         rule 20 {
             action drop
             description "Drop invalid state"
             state {
                 invalid enable
             }
         }
     }
     ipv6-name WANv6_LOCAL {
         default-action drop
         description "WAN inbound traffic to the router"
         enable-default-log
         rule 10 {
             action accept
             description "Allow established/related sessions"
             state {
                 established enable
                 related enable
             }
         }
         rule 20 {
             action drop
             description "Drop invalid state"
             state {
                 invalid enable
             }
         }
         rule 30 {
             action accept
             description "Allow IPv6 icmp"
             protocol ipv6-icmp
         }
         rule 40 {
             action accept
             description "allow dhcpv6"
             destination {
                 port 546
             }
             protocol udp
             source {
                 port 547
             }
         }
     }
     ipv6-receive-redirects disable
     ipv6-src-route disable
     ip-src-route disable
     log-martians enable
     modify wireguard_route {
         rule 5 {
             action modify
             destination {
                 group {
                     address-group MY_PUBLIC
                 }
             }
             modify {
                 table main
             }
         }
         rule 10 {
             action modify
             description wireguard-vpn
             modify {
                 table 1
             }
             source {
                 address 192.168.1.0/24
             }
         }
     }
     name WAN_IN {
         default-action drop
         description "WAN to internal"
         rule 10 {
             action accept
             description "Allow established/related"
             state {
                 established enable
                 related enable
             }
         }
         rule 20 {
             action drop
             description "Drop invalid state"
             state {
                 invalid enable
             }
         }
     }
     name WAN_LOCAL {
         default-action drop
         description "WAN to router"
         rule 10 {
             action accept
             description "Allow established/related"
             state {
                 established enable
                 related enable
             }
         }
         rule 20 {
             action drop
             description "Drop invalid state"
             state {
                 invalid enable
             }
         }
     }
     receive-redirects disable
     send-redirects enable
     source-validation disable
     syn-cookies enable
 }
 interfaces {
     ethernet eth0 {
         address dhcp
         description Internet
         dhcpv6-pd {
             pd 0 {
                 interface eth1 {
                     service dhcpv6-stateful
                 }
                 interface eth2 {
                     service dhcpv6-stateful
                 }
                 interface eth3 {
                     service dhcpv6-stateful
                 }
                 interface switch0 {
                     host-address ::1
                     service slaac
                 }
                 prefix-length /64
             }
             rapid-commit enable
         }
         duplex auto
         firewall {
             in {
                 ipv6-name WANv6_IN
                 name WAN_IN
             }
             local {
                 ipv6-name WANv6_LOCAL
                 name WAN_LOCAL
             }
         }
         ipv6 {
             address {
                 autoconf
             }
             dup-addr-detect-transmits 1
         }
         speed auto
     }
     ethernet eth1 {
         description Local
         duplex auto
         speed auto
     }
     ethernet eth2 {
         description Local
         duplex auto
         speed auto
     }
     ethernet eth3 {
         description Local
         duplex auto
         speed auto
     }
     ethernet eth4 {
         description Local
         duplex auto
         poe {
             output off
         }
         speed auto
     }
     loopback lo {
     }
     switch switch0 {
         address 192.168.1.1/24
         description Local
         firewall {
             in {
                 modify wireguard_route
             }
         }
         mtu 1500
         switch-port {
             interface eth1 {
             }
             interface eth2 {
             }
             interface eth3 {
             }
             interface eth4 {
             }
             vlan-aware disable
         }
     }
     wireguard wg0 {
         address 10.0.0.2/30
         description Wireguard
         listen-port 51821
         mtu 1420
         peer CENSORED {
             allowed-ips 0.0.0.0/0
             endpoint [2001:41d0:52:400::6e3]:51821
             persistent-keepalive 25
             preshared-key /config/auth/wg-preshared.key
         }
         private-key /config/auth/wg.key
         route-allowed-ips false
     }
 }
 port-forward {
     auto-firewall enable
     hairpin-nat enable
     lan-interface switch0
     rule 1 {
         description "Allow ALL"
         forward-to {
             address 192.168.1.10
         }
         original-port 1-65535
         protocol tcp_udp
     }
     wan-interface wg0
 }
 protocols {
     static {
         table 1 {
             description "table to force wg0:aws"
             interface-route 0.0.0.0/0 {
                 next-hop-interface wg0 {
                 }
             }
             route 0.0.0.0/0 {
                 blackhole {
                     distance 255
                 }
             }
         }
     }
 }
 service {
     dhcp-server {
         disabled false
         hostfile-update disable
         shared-network-name LAN {
             authoritative enable
             subnet 192.168.1.0/24 {
                 default-router 192.168.1.1
                 dns-server 192.168.1.1
                 lease 86400
                 start 192.168.1.38 {
                     stop 192.168.1.243
                 }
                 static-mapping Node2 {
                     ip-address 192.168.1.10
                     mac-address 90:b1:1c:44:f6:da
                 }
                 static-mapping iDRAC {
                     ip-address 192.168.1.120
                     mac-address E0:DB:55:06:2D:14
                 }
             }
         }
         static-arp disable
         use-dnsmasq disable
     }
     dns {
         forwarding {
             cache-size 150
             listen-on switch0
         }
     }
     gui {
         http-port 80
         https-port 443
         older-ciphers enable
     }
     nat {
         rule 5002 {
             description wireguard-nat
             log disable
             outbound-interface wg0
             protocol all
             source {
                 address 192.168.1.0/24
             }
             type masquerade
         }
         rule 5003 {
             description "masquerade for WAN"
             log disable
             outbound-interface eth0
             protocol all
             type masquerade
         }
     }
     ssh {
         port 22
         protocol-version v2
     }
     unms {
     }
 }
 system {
     analytics-handler {
         send-analytics-report false
     }
     crash-handler {
         send-crash-report false
     }
     host-name EdgeRouter-X-5-Port
     login {
         user ubnt {
             authentication {
                 encrypted-password 
             }
             level admin
         }
     }
     ntp {
         server 0.ubnt.pool.ntp.org {
         }
         server 1.ubnt.pool.ntp.org {
         }
         server 2.ubnt.pool.ntp.org {
         }
         server 3.ubnt.pool.ntp.org {
         }
     }
     offload {
         hwnat enable
         ipsec enable
     }
     syslog {
         global {
             facility all {
                 level notice
             }
             facility protocols {
                 level debug
             }
         }
     }
     time-zone UTC
 }
vpn networking tunneling wireguard ubiquiti-edgerouter
  • 1 个回答
  • 975 Views
Martin Hope
Milke
Asked: 2021-12-20 16:04:26 +0800 CST

带 iptables 的直通 VPN 隧道

  • 0

我的电子邮件 VPS 已经到了极限,但它的专用 IP 得到了很好的培养,我就是不能放弃它。我正在尝试设置一个测试环境,在该环境中,我在 VPS 上建立了一个 VPN 服务器,只是为了将传入和传出流量传递回 VM,目标是使用 VPS 上的外部 IP 进行所有 Internet 通信,同时将该流量通过隧道返回到一个虚拟机。我的麻烦在于 iptables。我无法弄清楚这一点,我确定这只是我在这种程度上缺乏使用 iptables 的知识。我的 VPS 和 VM 都在运行 Debian 10。

我尝试了一些不同的规则变体,这些变体是从这里的各种帖子中找到的。

变化(我在使用这些规则时更改了适配器名称和端口)

iptables -A FORWARD -m conntrack --ctstate NEW -s $PRIVATE_SUBNET -m policy --pol none --dir in -j ACCEPT
iptables -t nat -A POSTROUTING -s $PRIVATE_SUBNET -m policy --pol none --dir out -j MASQUERADE
iptables -A INPUT -p udp --dport $SERVER_PORT -j ACCEPT
iptables -A FORWARD -i eth0 -o wg0 -p tcp --syn --dport 80 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -i eth0 -o wg0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i wg0 -o eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -o wg0 -p tcp --syn --dport 443 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -i eth0 -o wg0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i wg0 -o eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination $WIREGUARD_CLIENT_ADDRESS
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j DNAT --to-destination $WIREGUARD_CLIENT_ADDRESS

我也尝试过编写自己的规则,但即使在观看了一些很棒的教程视频之后,这些视频涵盖的内容不仅仅是过滤表。我似乎对交通如何流动没有正确的心理画面。

另外因为我想从 VPN 服务器接收新流量,我知道我必须对“客户端”VM 上的 iptables 进行更改,这很可能也是我的问题所在。我希望有人能阐明一些我可能缺少的基本概念来解决这个难题。

vpn iptables tunneling passthrough
  • 1 个回答
  • 176 Views
Martin Hope
Martin Melka
Asked: 2021-05-28 12:39:44 +0800 CST

将部分 OpenVPN 流量路由到服务器上的 IPSec 隧道

  • 0

我正在尝试将 OpenVPN 访问服务器配置为通过在 OpenVPN 服务器上建立的 IPSec 隧道路由某些流量。这些是寻址细节:

  • OpenVPN 客户端 IP 范围:10.0.1.0/24
  • OpenVPN 服务器 IP(客户端连接到的地方):x.x.x.x
  • IPSec 隧道对等体:y.y.y.y
  • IPSec 隧道子网:(x.x.x.x) 10.0.1.0/24 <--> 172.30.239.0/25 (y.y.y.y)

从 OpenVPN 客户端来看,预期的行为是这样的:

  • curl 172.30.239.75-> 流量将从客户端流向 OpenVPN 服务器,通过 IPSec 隧道路由,最终进入172.30.239.0/25网络
  • curl google.com-> 流量将通过其默认网关从客户端到 OpenVPN 服务器和公共互联网(根本不使用 IPSec 隧道)

我认为这种配置会“正常工作”,因为 OpenVPN 客户端的 IP 地址是从与 IPSec 隧道相同的子网分配的,但遗憾的是事实并非如此。

我可以直接从 OpenVPN 服务器访问远程 IPSec 子网,例如curl 172.30.239.75,因此隧道和一些路由正在工作。但是从 OpenVPN 客户端运行相同的请求只是超时(tcpdump表明请求到达 OpenVPN 服务器但它在那里结束)。

我完全不知道接下来应该尝试什么。你能帮帮我吗?我对此很陌生,因此非常感谢您提供详细的答案!这个问题与我之前提出的这个问题有关,但没有足够的细节来实际实现。

下面我尝试收集相关配置,但如果还有其他重要的内容,请告诉我。

我没有添加任何自定义接口、路由或 iptables 规则。我尝试过的所有这些要么没有任何效果,要么搞砸了,所以下面的输出是 OpenVPN 和 IPSec 配置的。

接口

$ ifconfig (truncated)
as0t0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 10.0.1.1  netmask 255.255.255.128  destination 10.0.1.1

as0t1: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 10.0.1.129  netmask 255.255.255.128  destination 10.0.1.129

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet x.x.x.x  netmask 255.255.252.0  broadcast x.x.x.x

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.1.7.177  netmask 255.255.252.0  broadcast 10.1.7.255

路由

下面[gw.gw.gw.gw]是eth0 iface默认网关的IP地址

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         _gateway        0.0.0.0         UG    0      0        0 eth0
10.0.0.0        10.1.4.1        255.0.0.0       UG    0      0        0 eth1
10.0.1.0        0.0.0.0         255.255.255.128 U     0      0        0 as0t0
10.0.1.128      0.0.0.0         255.255.255.128 U     0      0        0 as0t1
10.1.4.0        0.0.0.0         255.255.252.0   U     0      0        0 eth1
169.254.169.254 10.1.4.1        255.255.255.255 UGH   0      0        0 eth1
x.x.x.0         0.0.0.0         255.255.252.0   U     0      0        0 eth0



$ ip route list table all
172.30.239.0/25 via [gw.gw.gw.gw] dev eth0 table 220 proto static src 10.0.1.1
default via [gw.gw.gw.gw] dev eth0
10.0.1.0/25 dev as0t0 proto kernel scope link src 10.0.1.1
10.0.1.128/25 dev as0t1 proto kernel scope link src 10.0.1.129
x.x.x.0/22 dev eth0 proto kernel scope link src x.x.x.x
broadcast 10.0.1.0 dev as0t0 table local proto kernel scope link src 10.0.1.1
local 10.0.1.1 dev as0t0 table local proto kernel scope host src 10.0.1.1
broadcast 10.0.1.127 dev as0t0 table local proto kernel scope link src 10.0.1.1
broadcast 10.0.1.128 dev as0t1 table local proto kernel scope link src 10.0.1.129
local 10.0.1.129 dev as0t1 table local proto kernel scope host src 10.0.1.129
broadcast 10.0.1.255 dev as0t1 table local proto kernel scope link src 10.0.1.129
broadcast 127.0.0.0 dev lo table local proto kernel scope link src 127.0.0.1
local 127.0.0.0/8 dev lo table local proto kernel scope host src 127.0.0.1
local 127.0.0.1 dev lo table local proto kernel scope host src 127.0.0.1
broadcast 127.255.255.255 dev lo table local proto kernel scope link src 127.0.0.1
broadcast x.x.x.0 dev eth0 table local proto kernel scope link src x.x.x.x
local x.x.x.x dev eth0 table local proto kernel scope host src x.x.x.x
broadcast 185.26.51.255 dev eth0 table local proto kernel scope link src x.x.x.x

iptables

iptables-save
# Generated by iptables-save v1.8.4 on Thu May 27 23:20:08 2021
*nat
:PREROUTING ACCEPT [655:63952]
:INPUT ACCEPT [82:5300]
:OUTPUT ACCEPT [72:5613]
:POSTROUTING ACCEPT [72:5613]
:AS0_NAT - [0:0]
:AS0_NAT_POST_REL_EST - [0:0]
:AS0_NAT_PRE - [0:0]
:AS0_NAT_PRE_REL_EST - [0:0]
:AS0_NAT_TEST - [0:0]
-A PREROUTING -m state --state RELATED,ESTABLISHED -j AS0_NAT_PRE_REL_EST
-A POSTROUTING -m state --state RELATED,ESTABLISHED -j AS0_NAT_POST_REL_EST
-A POSTROUTING -m mark --mark 0x2000000/0x2000000 -j AS0_NAT_PRE
-A AS0_NAT -o eth0 -j SNAT --to-source x.x.x.x
-A AS0_NAT -o eth1 -j SNAT --to-source 10.1.7.177
-A AS0_NAT -j ACCEPT
-A AS0_NAT_POST_REL_EST -j ACCEPT
-A AS0_NAT_PRE -m mark --mark 0x8000000/0x8000000 -j AS0_NAT
-A AS0_NAT_PRE -d 169.254.0.0/16 -j AS0_NAT_TEST
-A AS0_NAT_PRE -d 192.168.0.0/16 -j AS0_NAT_TEST
-A AS0_NAT_PRE -d 172.16.0.0/12 -j AS0_NAT_TEST
-A AS0_NAT_PRE -d 10.0.0.0/8 -j AS0_NAT_TEST
-A AS0_NAT_PRE -j AS0_NAT
-A AS0_NAT_PRE_REL_EST -j ACCEPT
-A AS0_NAT_TEST -o as0t+ -j ACCEPT
-A AS0_NAT_TEST -m mark --mark 0x4000000/0x4000000 -j ACCEPT
-A AS0_NAT_TEST -d 10.0.1.0/24 -j ACCEPT
-A AS0_NAT_TEST -j AS0_NAT
COMMIT
# Completed on Thu May 27 23:20:08 2021
# Generated by iptables-save v1.8.4 on Thu May 27 23:20:08 2021
*mangle
:PREROUTING ACCEPT [48:3312]
:INPUT ACCEPT [19672:4609821]
:FORWARD ACCEPT [32480:9628950]
:OUTPUT ACCEPT [18602:11259270]
:POSTROUTING ACCEPT [51071:20887532]
:AS0_MANGLE_PRE_REL_EST - [0:0]
:AS0_MANGLE_TUN - [0:0]
-A PREROUTING -m state --state RELATED,ESTABLISHED -j AS0_MANGLE_PRE_REL_EST
-A PREROUTING -i as0t+ -j AS0_MANGLE_TUN
-A AS0_MANGLE_PRE_REL_EST -j ACCEPT
-A AS0_MANGLE_TUN -j MARK --set-xmark 0x2000000/0xffffffff
-A AS0_MANGLE_TUN -j ACCEPT
COMMIT
# Completed on Thu May 27 23:20:08 2021
# Generated by iptables-save v1.8.4 on Thu May 27 23:20:08 2021
*filter
:INPUT ACCEPT [12:660]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [18526:11256230]
:AS0_ACCEPT - [0:0]
:AS0_IN - [0:0]
:AS0_IN_NAT - [0:0]
:AS0_IN_POST - [0:0]
:AS0_IN_PRE - [0:0]
:AS0_IN_ROUTE - [0:0]
:AS0_OUT - [0:0]
:AS0_OUT_LOCAL - [0:0]
:AS0_OUT_POST - [0:0]
:AS0_OUT_S2C - [0:0]
:AS0_WEBACCEPT - [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j AS0_ACCEPT
-A INPUT -i lo -j AS0_ACCEPT
-A INPUT -m mark --mark 0x2000000/0x2000000 -j AS0_IN_PRE
-A INPUT -p udp -m state --state NEW -m udp --dport 1194 -j AS0_ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j AS0_ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j AS0_WEBACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 943 -j AS0_WEBACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j AS0_ACCEPT
-A FORWARD -m mark --mark 0x2000000/0x2000000 -j AS0_IN_PRE
-A FORWARD -o as0t+ -j AS0_OUT_S2C
-A OUTPUT -o as0t+ -j AS0_OUT_LOCAL
-A AS0_ACCEPT -j ACCEPT
-A AS0_IN -d 10.0.1.1/32 -j ACCEPT
-A AS0_IN -j AS0_IN_POST
-A AS0_IN_NAT -j MARK --set-xmark 0x8000000/0x8000000
-A AS0_IN_NAT -j ACCEPT
-A AS0_IN_POST -d 10.0.1.0/24 -j ACCEPT
-A AS0_IN_POST -o as0t+ -j AS0_OUT
-A AS0_IN_POST -j DROP
-A AS0_IN_PRE -d 169.254.0.0/16 -j AS0_IN
-A AS0_IN_PRE -d 192.168.0.0/16 -j AS0_IN
-A AS0_IN_PRE -d 172.16.0.0/12 -j AS0_IN
-A AS0_IN_PRE -d 10.0.0.0/8 -j AS0_IN
-A AS0_IN_PRE -j ACCEPT
-A AS0_IN_ROUTE -j MARK --set-xmark 0x4000000/0x4000000
-A AS0_IN_ROUTE -j ACCEPT
-A AS0_OUT -j AS0_OUT_POST
-A AS0_OUT_LOCAL -p icmp -m icmp --icmp-type 5 -j DROP
-A AS0_OUT_LOCAL -j ACCEPT
-A AS0_OUT_POST -j DROP
-A AS0_OUT_S2C -s 10.0.1.0/24 -j ACCEPT
-A AS0_OUT_S2C -j AS0_OUT
-A AS0_WEBACCEPT -j ACCEPT
COMMIT
# Completed on Thu May 27 23:20:08 2021

我还尝试不让 OpenVPN 客户端 IP 子网和 IPSec 隧道子网重叠,但在这种情况下我也找不到设置路由的方法。不过,这种设置绝对是一种选择,如果那样的话会更好。

routing openvpn ipsec tunneling
  • 1 个回答
  • 335 Views
Martin Hope
dada513
Asked: 2021-05-23 07:58:34 +0800 CST

SSH 隧道 - 将本地端口暴露给远程机器的性能替代方案?

  • 1

我在运营商级 NAT 环境中在家中运行服务器 A。因此,我无法直接在路由器中打开端口。我在云托管提供商上也有服务器 B,它有一个可以打开端口的静态公共 IP 地址。两台机器都运行 Ubuntu linux。

到目前为止,对我来说最好的解决方案是 SSH 隧道,但它有一个称为 TCP-over-TCP 的性能缺陷。

我尝试了几种解决方案,每个解决方案都有一些问题:

  1. OpenVPN/Wireguard:我不想将服务器 A 的全部流量路由到远程服务器,只公开几个端口(同时让它们也可以从 LAN 访问)
  2. ngrok:集中式服务,有几个限制(如最大连接数等)
  3. LocalTunnel:仅限 HTTP(S)。我想转发 TCP 流量。
  4. SSH隧道:上面讨论过
  5. 大多数其他解决方案:仅集中式(非自托管)或 HTTP(S)

我还需要通过服务器B访问端口的客户端的原始IP地址对服务器A可见。我应该尝试什么软件?

linux ubuntu networking ssh tunneling
  • 2 个回答
  • 433 Views
Martin Hope
raitech
Asked: 2021-03-26 14:39:58 +0800 CST

在同一主机上的两个 openvpn 隧道网络之间转发数据包

  • 0

我有两个 p2p 隧道到主机 tun1 和 tun2 上的两个不同服务器:(主机是 Ubuntu 服务器 18.04)

(服务器 1:IP1)<-->(主机:IP0)<-->(服务器 2:IP2)

对于 tun1 到服务器 1,我有:

proto       udp
mode        p2p
remote      IP1
rport       4856
local       IP0
lport       4856
dev-type    tun
tun-ipv6
resolv-retry infinite
dev  tun1
comp-lzo
persist-key
persist-tun
cipher aes-256-cbc
ifconfig 192.168.76.2  192.168.76.3
secret /etc/openvpn/key.key

对于 tun2 到服务器 2,我有:

proto       udp
mode        p2p
remote      IP2
rport       4857
local       IP0
lport       4857
dev-type    tun
tun-ipv6
resolv-retry infinite
dev  tun2
comp-lzo
persist-key
persist-tun
cipher aes-256-cbc
ifconfig 192.168.77.2  192.168.77.3
secret /etc/openvpn/key.key

我想将 tun1 上接收到的数据包转发到 tun2,所以我添加了一个静态路由:

ip route add IP4/32 via 192.168.77.3

还启用了 IP 转发。

sysctl -w net.ipv4.ip_forward=1

不存在 iptables 规则。所有链都有 ACCEPT 行为。

所有隧道接口都连接到其相应的服务器并启动。当我使用 dst=IP4 从服务器 1 向隧道发送数据包时,在主机中接收到数据包,但它们没有转发到 tun2,我无法在服务器 2 中使用tcpdump. 任何想法?

router openvpn tunneling
  • 1 个回答
  • 153 Views
Martin Hope
DGB Productions
Asked: 2020-05-23 14:05:14 +0800 CST

将 Linux 流量隧道传输到 Windows

  • 0

我有两台服务器。Windows 和 Linux。假设 Linux 具有 IP 1.2.3.4 和 Windows 5.6.7.8。我希望所有流量都作为隧道转发到 Windows。如果我连接 1.2.3.4:329,我想连接 5.6.7.8:329。

好的 Linux (ubuntu) 服务器 - IP 1.2.3.4 Windows 服务器 - IP 5.6.7.8

我想通过 Linux 将所有流量推送到 Windows。通过GRE隧道等。

我希望有人知道如何做到这一点以及这是否可能?

windows linux tunneling tunnel gre
  • 1 个回答
  • 434 Views
Martin Hope
rep_movsd
Asked: 2020-04-19 13:31:59 +0800 CST

如何设置双 SSH 隧道,以便防火墙后面的两台机器 A 和 B SSH 进入中央服务器,以便 A 可以 VNC 进入 B?

  • 0

我需要通过 VNC 从我的机器 A 连接到属于我朋友 B 的另一台机器。我们俩都无法打开传入端口 - 除非您购买基于静态 IP 的商业计划,否则 ISP 不允许隧道。两者都是linux系统顺便说一句

我们有一个具有完全访问权限的 Web 服务器,我们都可以通过 ssh 进入。我们如何设置从任一端到服务器的隧道以便 VNC 工作?

我知道如何在两个系统之间建立一个 ssh 隧道,我相信通过首先在 A 到 B 然后在 B 到 C 上运行 ssh 来实现 A->B->C 并不难

但我需要 A->C 和 B->C 而不是 A->B 和 B->C

基本上我认为我需要一个代理服务器——这可以通过 SSH 甚至某种 linux 网络魔法来完成吗?

firewall ssh proxy vnc tunneling
  • 2 个回答
  • 939 Views
Martin Hope
gib
Asked: 2017-03-16 12:59:20 +0800 CST

基于使用的接口路由?

  • 0

我有两个互联网连接。默认eth0和一个 vpn 隧道tun0。

我的ip show route节目:

default via 149.202.xxx.xxx dev eth0
10.8.8.0/24 dev tun0  proto kernel  scope link  src 10.8.8.234
149.202.xxx.0/24 dev eth0  proto kernel  scope link  src 149.202.xxx.yy

网关tun0虽然10.8.8.1我不想将其设置为默认值。例如,我想做的是使用ping -I tun0 8.8.8.8,或者curl --interface tun0 http://somewebsite.com在这种特殊情况下,我想tun0用作我的传出连接。

可能吗?

routing tunneling
  • 1 个回答
  • 412 Views
Martin Hope
bigbiggerpepe
Asked: 2016-12-17 08:05:17 +0800 CST

不同主机中的多个 openvpn 客户端

  • 1

我正在尝试同时运行多个 openvpn 实例,运行单个实例时一切正常,但我希望有几个实例,每个实例连接到不同的主机,并从那里能够使用我的接口想。

我正在尝试这样:

法国.ovpn

client
dev tun
proto udp
remote france.privateinternetaccess.com
lport 1190
resolv-retry infinite
persist-key
persist-tun
cipher aes-128-cbc
auth sha1
tls-client
remote-cert-tls server
auth-user-pass /etc/openvpn/piaauth.txt
comp-lzo
verb 1
reneg-sec 0
crl-verify /etc/openvpn/crl.rsa.2048.pem
ca /etc/openvpn/ca.rsa.2048.crt
disable-occ
lport 1189
rport 1198

|

 sudo /usr/sbin/openvpn --config /etc/openvpn/France.ovpn --dev tun0

Fri Dec 16 16:59:32 2016 OpenVPN 2.3.10 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Feb  2 2016
Fri Dec 16 16:59:32 2016 library versions: OpenSSL 1.0.2g  1 Mar 2016, LZO 2.08
Fri Dec 16 16:59:32 2016 WARNING: file '/etc/openvpn/piaauth.txt' is group or others accessible
Fri Dec 16 16:59:32 2016 UDPv4 link local (bound): [undef]
Fri Dec 16 16:59:32 2016 UDPv4 link remote: [AF_INET]108.61.122.121:1198
Fri Dec 16 16:59:32 2016 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Fri Dec 16 16:59:32 2016 [113b1963081eb5270c22e4405fb71051] Peer Connection Initiated with [AF_INET]108.61.122.121:1198
Fri Dec 16 16:59:34 2016 TUN/TAP device tun0 opened
Fri Dec 16 16:59:34 2016 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Fri Dec 16 16:59:34 2016 /sbin/ip link set dev tun0 up mtu 1500
Fri Dec 16 16:59:34 2016 /sbin/ip addr add dev tun0 local 10.43.10.6 peer 10.43.10.5
Fri Dec 16 16:59:34 2016 Initialization Sequence Completed

在此之后一切正常。但是当我运行下一个 ovpn 实例时,我得到了一些错误。

多伦多

client
dev tun
proto udp
remote ca-toronto.privateinternetaccess.com
resolv-retry infinite
persist-key
persist-tun
cipher aes-128-cbc
auth sha1
tls-client
remote-cert-tls server
auth-user-pass /etc/openvpn/piaauth.txt
comp-lzo
verb 1
reneg-sec 0
crl-verify /etc/openvpn/crl.rsa.2048.pem
ca /etc/openvpn/ca.rsa.2048.crt
disable-occ
lport 1192
rport 1198

|

sudo /usr/sbin/openvpn --config /etc/openvpn/Toronto.ovpn --dev tun1

Fri Dec 16 16:59:57 2016 OpenVPN 2.3.10 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Feb  2 2016
Fri Dec 16 16:59:57 2016 library versions: OpenSSL 1.0.2g  1 Mar 2016, LZO 2.08
Fri Dec 16 16:59:57 2016 WARNING: file '/etc/openvpn/piaauth.txt' is group or others accessible
Fri Dec 16 16:59:57 2016 UDPv4 link local (bound): [undef]
Fri Dec 16 16:59:57 2016 UDPv4 link remote: [AF_INET]172.98.67.16:1198
Fri Dec 16 16:59:57 2016 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Fri Dec 16 16:59:58 2016 [484ec5eff7d70137ae07ee3ec5e62b80] Peer Connection Initiated with [AF_INET]172.98.67.16:1198
Fri Dec 16 17:00:00 2016 TUN/TAP device tun1 opened
Fri Dec 16 17:00:00 2016 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Fri Dec 16 17:00:00 2016 /sbin/ip link set dev tun1 up mtu 1500
Fri Dec 16 17:00:00 2016 /sbin/ip addr add dev tun1 local 10.84.10.6 peer 10.84.10.5
RTNETLINK answers: File exists
Fri Dec 16 17:00:00 2016 ERROR: Linux route add command failed: external program exited with error status: 2
RTNETLINK answers: File exists
Fri Dec 16 17:00:00 2016 ERROR: Linux route add command failed: external program exited with error status: 2
Fri Dec 16 17:00:00 2016 Initialization Sequence Completed

这里ip link和ip addr都失败了。

这是我的路由表

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.43.10.5      128.0.0.0       UG    0      0        0 tun0
default         192.168.1.1     0.0.0.0         UG    0      0        0 enp3s0
10.43.10.1      10.43.10.5      255.255.255.255 UGH   0      0        0 tun0
10.43.10.5      *               255.255.255.255 UH    0      0        0 tun0
10.84.10.1      10.84.10.5      255.255.255.255 UGH   0      0        0 tun1
10.84.10.5      *               255.255.255.255 UH    0      0        0 tun1
108.61.122.121. 192.168.1.1     255.255.255.255 UGH   0      0        0 enp3s0
128.0.0.0       10.43.10.5      128.0.0.0       UG    0      0        0 tun0
link-local      *               255.255.0.0     U     1000   0        0 enp3s0
172.98.67.16    192.168.1.1     255.255.255.255 UGH   0      0        0 enp3s0
192.168.1.0     *               255.255.255.0   U     0      0        0 enp3s0

这是我的 ifconfig

enp3s0    Link encap:Ethernet  HWaddr 
          inet addr:192.168.1.128  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::beae:c5ff:fe5a:7ec/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1146017 errors:0 dropped:0 overruns:0 frame:0
          TX packets:727717 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1500194552 (1.5 GB)  TX bytes:117446235 (117.4 MB)
          Interrupt:40 

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.43.10.6  P-t-P:10.43.10.5  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:2143 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1715 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:2312566 (2.3 MB)  TX bytes:170653 (170.6 KB)

tun1      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.84.10.6  P-t-P:10.84.10.5  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

我想我只需要配置一些路由,对吗?

vpn openvpn tunneling route
  • 1 个回答
  • 549 Views
Martin Hope
Bruce
Asked: 2013-02-05 23:33:23 +0800 CST

Rp_filter 和 linux 隧道

  • 0

有人可以举例说明为什么在使用 IPIP/GRE 隧道时需要禁用反向路径过滤吗?

echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
tunneling
  • 1 个回答
  • 862 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve