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
    • 最新
    • 标签
主页 / ubuntu / 问题 / 4988
Accepted
dierre
dierre
Asked: 2010-10-01 11:48:17 +0800 CST2010-10-01 11:48:17 +0800 CST 2010-10-01 11:48:17 +0800 CST

2 个连接到 Internet 的网络接口。根据域名选择使用的

  • 772

从这里启发的问题

设想

我住在大学附近的一所房子里。也就是说,学生 wifi 可以到达我家,所以我通常即使在家也使用它。问题是,作为由大学系统管理员管理的 wifi,无法连接到某些 dns(例如文件上传域,如 rapidshare 或 megaupload)。好消息是我还有一个可以使用的 USB 互联网密钥,但是,基本上这就像意大利的所有互联网移动计划一样是一个骗局,因为在 20GB 之后他们会切断我的带宽。

最后……问题

为了优化我的带宽使用,我想对我的 Ubuntu 说:如果我连接到 *.domain.com 使用这个接口,否则使用另一个。为了这个问题,我们称之为 wifiwlan0和 usb internet key ppp0。

PS:这是一个非常具体的问题。不要建议诸如“使用 Tor,伙计”之类的东西。我不想滥用大学的wifi。我实际上不知道 Tor 是否可以做到这一点……但仍然…… :)

networking internet
  • 2 2 个回答
  • 2380 Views

2 个回答

  • Voted
  1. Best Answer
    koanhead
    2010-10-01T17:39:35+08:002010-10-01T17:39:35+08:00

    如果您的示例域“*.domain.com”具有静态 IP 地址块,则可以向路由表添加静态路由,例如:

    me@thiscomputer:~$ whois domain.com
    

    这应该会为您提供一些 domain.com 所有者的联系信息。您可以联系他们以了解他们的网络地址。此地址可能采用 CIDR 格式,其中:192.168.0.0/24 ==“从 192.168.0.1 到 192.168.0.254 的 IP 地址集”。斜线后面的数字是地址网络部分的位数。这相当于网络掩码 255.255.255.0。

    您还可以使用dig查找一些主机地址并尝试从中推断出网络块,或者只是添加到离散主机的路由,但我不推荐这样做。

    有了地址信息,您就可以像这样添加静态路由:

    me@thiscomputer:~$ sudo ip route add inet 10.0.0.0/24 dev ppp0
    

    IRL 它可能不会完全像这样工作,请查阅 ip 命令或 route 命令的手册页(这些是执行相同操作的不同命令,route 较旧并且是 coreutils 的一部分)以了解如何正确执行。

    如果域的地址不是静态的(例如由 DHCP 配置),这对于具有持久 A 记录的站点来说似乎不太可能,您可以将上述方法用于以比站点的 DHCP 租约更短的时间间隔运行的 cron 作业。您可能必须联系该站点的管理员以获取此信息,或者只是进行试验。如果该作业每天运行一次,那可能会足够频繁。

    • 6
  2. Gilles 'SO- stop being evil'
    2010-10-01T14:42:16+08:002010-10-01T14:42:16+08:00

    你的大学网络上有网络代理吗?如果是这样,请将其用于正常的网页浏览,但不要访问被阻止的站点。

    否则,这是可能的,但不是很容易。路由(即决定将数据包发送到哪里)是在IP级别执行的,它只知道 IP 地址。另一方面,您的路由要求基于主机名,但知道名称的层无法控制路由。

    我认为任何解决方案都将涉及网络代理。(我假设对于其他协议,您将始终使用特定的网络。)网络代理本身除了中继请求之外不会做任何事情,所以任何都会做:一个大的(squid),一个专门用于缓存 ( wwwoffle)、一个简单的小缓存 ( )tinyproxy等 ( aptitude search web proxy; aptitude search http proxy)。

    现在,对于我提出的解决方案(可能还有其他方式),不要以任何特殊方式配置您的代理(即让它中继所有请求),而是以专用用户身份运行它:创建一个alt-routed没有特殊的用户权限,并安排代理以该用户身份运行。

    然后,创建wlan0默认路由。然后设置iptables并安装iproute包。您想要的规则是将来自作为接口运行的进程的传出数据包定向alt-route-user到ppp0接口。没有直接的方法可以做到这一点,但可以通过以下方式完成:

    1. 特别标记(带有标记1)来自用户的传出数据包alt-routed;
    2. 对标有此标记的数据包使用不同的路由表(表 1);
    3. 将所有内容路由到此表中的备用接口。

    如果我正确理解文档,这应该有效:

    iptables -t mangle -A OUTPUT -m owner --uid-owner alt-routed -o wlan0 -j MARK --set-mark 1
    ip rule add fwmark 1 table 1
    ip route add 0.0.0.0/0 table 1 dev ppp0
    

    请注意,这远远超出了我对这些工具的常用用法,因此我可能完全错误地理解了这些命令。欢迎确认或更正。

    您运行的任何程序都alt-routed将通过ppp0而不是默认的wlan0.

    最后,将您的浏览器配置为通过您要访问的站点的代理ppp0,而不是通过您要访问的站点的代理wlan0。有几种方法可以做到这一点,具体取决于您的目标浏览器以及您是否需要 GUI 或愿意编辑配置文件。

    • 4

相关问题

  • 如何设置 VLAN 转发?

  • 如何将主机 Ubuntu 上的 VPN (tun0) 网络适配器映射到 VirtualBox 来宾 Windows?

  • 如何限制下载/上传带宽?

  • 如何通过 Windows 网络共享文件?

  • 面板小程序以文本形式显示当前网络流量?

Sidebar

Stats

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

    如何安装 .run 文件?

    • 7 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    如何获得 CPU 温度?

    • 21 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Marko Smith

    你如何重新启动Apache?

    • 13 个回答
  • Marko Smith

    如何卸载软件?

    • 11 个回答
  • Marko Smith

    如何删除 PPA?

    • 26 个回答
  • Martin Hope
    NES 如何启用或禁用服务? 2010-12-30 13:03:32 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    Olivier Lalonde 如何在结束 ssh 会话后保持进程运行? 2010-10-22 04:09:13 +0800 CST
  • Martin Hope
    David B 如何使用命令行将用户添加为新的 sudoer? 2010-10-16 04:02:45 +0800 CST
  • Martin Hope
    Hans 如何删除旧内核版本以清理启动菜单? 2010-08-21 19:37:01 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve