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 / 问题 / 577553
Accepted
stighy
stighy
Asked: 2014-02-23 02:46:15 +0800 CST2014-02-23 02:46:15 +0800 CST 2014-02-23 02:46:15 +0800 CST

将路由表配置为通过 VPN 连接仅路由一个(或 IP 范围)

  • 772

这是我的家庭网络配置:

设备/PC/智能手机 ---> DD-WRT 路由器 ---> 互联网路由器 ---> 互联网/世界

  • DD WRT路由器ip:192.168.1.1(默认gw为192.168.1.254)

  • 互联网路由器ip:192.168.1.254

  • 设备 ip 从 192.168.1.2 到 192.168.1.253

我想配置运行 PPTP VPN 客户端的 DD WRT 闪存路由器。PPTP VPN 虚拟设备称为ppp0。

然后 :

  • 从 192.168.1.40 到 192.168.1.50 的所有 ip 都通过 Vpn(所以,通过 ppp0 接口和 ppp0 网关)
  • 所有其他 ip 使用默认局域网网关(因此,不使用 vpn)

当我在 DD WRT 上启动 VPN 客户端时,我的路由表是

0.0.0.0 via 192.168.1.254 dev eth0 
default via 192.168.120.10 dev ppp0  scope link 
8.8.8.8 via 192.168.1.254 dev eth0 
62.101.93.101 via 192.168.1.254 dev eth0 
127.0.0.0/8 dev lo  scope link 
169.254.0.0/16 dev br0  proto kernel  scope link  src 169.254.255.1 
192.168.1.0/24 dev br0  proto kernel  scope link  src 192.168.1.1 
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.132 
192.168.1.254 via 192.168.1.254 dev eth0 
192.168.120.10 dev ppp0  scope link 

现在,我想我必须更换

  • 默认通过 192.168.120.10 dev ppp0

和

  • 默认通过 192.168.1.254 dev eth0

所以所有 ip 都通过标准的互联网网关(没有 PPTP vpn)......然后添加一个规则,如

  • 192.168.1.40 通过 192.168.120.10 开发 ppp0

只允许 ip 192.168.1.40 使用 PPTP 退出。

但是..它不起作用!

所以我的最后一个问题是:

  • 如何配置我的路由器通过默认互联网网关(192.168.1.254)路由所有 IP,并且只有一个 IP(或 IP 范围)使用 pptp vpn 连接退出?

非常感谢!

routing
  • 1 1 个回答
  • 4668 Views

1 个回答

  • Voted
  1. Best Answer
    Olivier S
    2014-02-23T03:23:25+08:002014-02-23T03:23:25+08:00

    网络路由不考虑源 IP 地址,只考虑目标 IP 地址。这就像说“如果有人想访问网络 1.2.3.4,请使用 192.168.1.xx 作为网关”。

    你想要做的是说:“来自这个 IP 地址的流量通过这个特定的网关进入互联网”。

    这稍微复杂一些。Linux 中的标准解决方案是使用 iproute2 包的特性。

    1. 在备用表上创建新的默认路由ip route add table 55 default via 192.168.20.10 dev ppp0
    2. 标记您要路由的流量iptables -t mangle -I PREROUTING 1 -s 192.168.1.40 -j MARK --set-mark 55
    3. 创建一个规则,以便标记为 55 的流量通过表 55 路由ip rule add fwmark 55 table 55

    此时,如果您在接口 ppp0 上运行 tcpdump 并从您的 192.168.1.40 设备发送一些流量,您应该会看到一些流量。

    现在你可能会遇到两个问题:

    1. NAT :您可能必须添加一个 nat 规则,以便通过 ppp0 接口传出的流量使用接口 ip 地址进行 nat
    2. 碎片:您的 ppp0 接口的 MTU 可能小于 eth0 接口的 mtu,因此您必须安装 TCPMSS 规则以将流量限制在 1300 到 1400 之间
    • 2

相关问题

  • 无法通过 Ubuntu VPN 访问外部网络

  • 将路由永久添加到 Solaris 10

  • Quagga 套件中的 ./configure --disable-zebra 代表什么?

  • 使用特定接口进行出站连接(Ubuntu 9.04)

  • Linux TC/策略路由工具

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