使用 Azure 中的第二个(或多个)NIC 访问互联网

2024-01-10

我在 Azure 中有一个虚拟机,带有 Ubuntu 19.04 和 4 个网卡,每个网卡都附加了一个公共 IP,作为示例,这是第二个网卡:

如您所见,它的公共 IP 为 191.234.186.19。

我的目标是能够从具有不同 IP 地址的每个 NIC 访问互联网,但在虚拟机内部我只能使用第一个网络访问它eth0.

看着# route -n我得到这个输出:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.1        0.0.0.0         UG    100    0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth2
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth3
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth1
168.63.129.16   10.0.0.1        255.255.255.255 UGH   100    0        0 eth0
169.254.169.254 10.0.0.1        255.255.255.255 UGH   100    0        0 eth0

我尝试使用以下命令为其他网卡添加路由:

sudo ip route add default via 10.0.0.1 dev eth1 metric 101
sudo ip route add default via 10.0.0.1 dev eth2 metric 102
sudo ip route add default via 10.0.0.1 dev eth3 metric 103

但我仍然无法使用这些网卡连接到互联网,只能eth0.

我错过了什么吗?我是否需要更改/配置其他任何内容才能使其正常工作?

为了完整起见,我使用此命令来测试连接:

curl --interface eth1 api.ipify.org?format=json -w "\n"

而我的VM和本文中的VM是一样的:article https://www.itinsights.org/Use-multiple-public-IP-addresses-in-Azure-VM/


我怀疑你可能需要 1) 为第二个、第三个和第四个接口定义新的路由表, 2)将默认路由添加到这些表中 3) 并定义规则以确保返回数据包始终路由回原始数据包发送的同一接口。

有几个例子供您参考(例如this https://www.thomas-krenn.com/en/wiki/Two_Default_Gateways_on_One_System and this http://www.rjsystems.nl/en/2100-adv-routing.php).

我只想指出几点,在针对您的具体情况进行设置时可能会有所帮助:iproute https://www.systutorials.com/docs/linux/man/8-ip-route/允许您维护多个路由表。要指示操作系统使用不同的路由表,您需要定义rules http://man7.org/linux/man-pages/man8/ip-rule.8.html在最简单的形式中,将强制使用与发起连接的接口相对应的路由表。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Azure 中的第二个(或多个)NIC 访问互联网 的相关文章

随机推荐

  • Java力场继承

    我知道有很多关于 Java 继承的线索 我已经读过 但它们都代表 它是怎样的 而我需要 如何改变它 的知识 所以 我们有 2 个类 class t1 public int a 5 public void get System out pri
  • 警告:侦听端口 52698 的远程端口转发失败

    我正在使用 SSH 访问我大学的 afs 系统 我喜欢使用 rmate 远程 TextMate 它需要 SSH 隧道 所以我在我的 bashrc alias sshr ssh R 52698 localhost 52698 email pr
  • 在 next.js 中触发客户端重新加载

    Scenario 索引页使用 getInitialProps 来加载数据 然后我们创建一个可以创建新数据的对话框 创建新数据后 应重新加载当前页面 Problem We use Router replace 重新加载页面 但它会触发服务器端
  • 是否可以在 html 文件的 script 标签中编译 Coffeescript 代码? [复制]

    这个问题在这里已经有答案了 可能的重复 有没有办法将 CoffeeScript 发送到客户端浏览器并将其编译为 JavaScriptthere https stackoverflow com questions 5170473 is the
  • 批量创建需要事务原子性吗?

    我正在使用bulk create https docs djangoproject com en 3 0 ref models querysets bulk createDjango 中的方法可以一次创建多个条目 为了确保仅在没有例外的情况
  • 仅第一个 UIView 添加的视图 addSubview 显示正确的方向

    我设置了三个 ViewController 来处理三个视图 我遇到的问题是 在模拟器中 方向是 LandscapeRight 这就是我想要的 并且第一个视图在该横向视图中正确显示 但是当我移动到第二个和第三个视图时 它们会显示逆时针旋转 9
  • Boost 库格式;获取 std::string

    我想添加一些使用 boost 库格式化的字符串 如下所示 boost container vector
  • 为什么实例仅通过其头部进行匹配?

    我将首先介绍一个具体的问题 StackOverflow 的人就是这样 假设您定义了一个简单类型 data T a T a 这种类型是一个Functor Applicative and a Monad 忽略自动派生 要获取这些实例 您必须编写
  • Android 上的 OpenCV 眼动追踪

    我希望使用 OpenCV api 在 android 中进行基本的眼动追踪 我发现在 Andriod 中使用 opencv 似乎有两种方法 要么使用他们的 c 包装器 要么使用 JavaCV api 我愿意这样做 但我正在寻找一些想法或示例
  • 要捕获的正则表达式:单词 {word} word

    我正在尝试捕获 单词 word 单词 我有以下正则表达式 S s S s 它实际上捕获了这种模式 但它也捕获了单词 word 看 https regex101 com r yI64KQ 6 https regex101 com r yI64
  • 放大配置

    我已经安装了 amplify cli 当我输入 amplify configure 时 收到错误消息 amplify 不被识别为内部或外部命令 可操作程序或批处理文件 请分享您的平台 您是在 Linux Windows Powershell
  • Xcode 6 GM 与 iPhone 5s (iOS 8 GM) - 0xE8000070

    我在 iPhone 5s 型号 A1530 iOS 8 版本 12A365 上使用 Xcode 6 GM Seed 版本 6A313 我通过 USB 闪电数据线连接 iPhone 但在 Xcode 中 它显示为 iPhone 5s 不可用
  • 为什么 Foreman 在我按下 Control-C 之前不会输出一些内容?

    我刚刚开始使用 Rails 编程 看起来有两个程序可以用来在本地运行我的项目 rackup 和 foreman 我注意到的一个区别是 foreman 不会输出一些我希望看到的内容 而我会查看是否运行rackup 直到我按 ctrl c 关闭
  • 如何获取 stringbuilder 并将其转换为streamReader?

    如何获取字符串生成器并将其转换为流 所以我的 stringbuilder 必须转换为 StreamReader stream Update 我尝试使用字符串读取器 例如 StringReader sr new StringReader sb
  • Suitecrm - pdf 模板中的 php 代码

    我想在我的 pdf 模板中添加 php 代码 这是我的用例 First is I have a dropdown on my own module 然后我想要的是我的 pdf 模板 我想要基于我的下拉列表的值的 php 条件 例如 if c
  • 包括特定于 ASP.NET MVC4 视图或部分视图的脚本

    我看过很多类似的问题如何在MVC4的局部视图中添加脚本 https stackoverflow com questions 14114084 how to add a script in a partial view in mvc4 and
  • 内联这个函数还是不内联?

    我应该实现一个比较两个相似字符串的函数strcmp但忽略空白字符 所以 strcmpignorews abc a b c 应该给出相同的结果 这是我的实现 namespace void SkipWhitespace const char s
  • saveAsTextFile 到 Spark 上的 s3 不起作用,只是挂起

    我正在将 s3 中的 csv 文本文件加载到 Spark 过滤和映射记录并将结果写入 s3 我尝试了几种输入大小 100k 行 1M 行和 350 万行 前两者成功完成 而后者 350 万行 挂起在某种奇怪的状态 其中作业阶段监控 Web
  • 将 ClickHandler 与 Element 的子元素一起使用

    我需要将具有特定 ClickHandler 的锚点添加到元素中 但我的 Anchor 的 onClick 方法从未被调用 我该如何解决这个问题 Element th DOM createTH Anchor link new Anchor l
  • 使用 Azure 中的第二个(或多个)NIC 访问互联网

    我在 Azure 中有一个虚拟机 带有 Ubuntu 19 04 和 4 个网卡 每个网卡都附加了一个公共 IP 作为示例 这是第二个网卡 如您所见 它的公共 IP 为 191 234 186 19 我的目标是能够从具有不同 IP 地址的每