使用 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 访问互联网 的相关文章

  • 如何使用我的 DNS 服务器获取 Azure 容器实例?

    In ACI https learn microsoft com en us azure container instances container instances overview我们使用具有虚拟网络支持的 Linux 容器 我们运行
  • Azure Functions - 配置客户端证书身份验证

    函数是否支持通过使用客户端证书来授权对函数的访问消费计划 类似于所描述的方法here https learn microsoft com en us azure app service app service web configure t
  • Azure AD 注销 URL 未重定向

    我正在构建以下 URL https login microsoftonline com
  • 直接从浏览器将文件上传到 Azure Blob 存储?

    是否可以创建一个 html 表单以允许 Web 用户直接将文件上传到 azure blob 存储 而无需使用其他服务器作为中介 S3 和 GAW blobstore 都允许这样做 但我找不到任何对 azure blob 存储的支持 编辑 2
  • 如何在 Visual Studio 中更改 Azure 数据库表的列顺序

    我整个下午都在寻找在 MS Visual Studio 2022 中重新排序 Azure 数据库表列的方法 没有运气 在其他应用程序中 可以通过拖动或剪切和粘贴轻松重新排列列 这里无能为力 此时 我什至不确定可以在 VS 中移动列 我只对
  • 通过PowerShell检索Azure AD应用程序的“API权限”

    出于报告和监视的目的 我想检索应用程序 应用程序注册 的 Azure 门户中显示的信息以获取 API 权限 我尝试过以下代码 app Get AzureADApplication ObjectId aa7e174d 2639 4ac7 9b
  • 更改表分布(Azure 数据仓库)

    在急着下班的过程中 我在一个采用循环分配的新桌子上运行了一个大型插入 我知道这不太可能 但是有没有办法将表的分布从循环更改为哈希分布 很遗憾ALTER TABLE不支持更改 Azure SQL 数据仓库中表的分布 您可以做的下一个最好的事情
  • tcpdump 是否受 iptables 过滤影响?

    如果我的开发机器有iptables规则到FORWARD一些数据包 这些数据包是否被 tcpdump 捕获 我有这个问题 因为我知道存在其他链称为INPUT如果数据包路由到 它会过滤发往应用程序的数据包FORWARD链 它会到达吗tcpdum
  • Windows 7 远程关机:访问被拒绝(5) [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我正在尝试强制从我的笔记本电脑远程关闭我的电脑 machine gt shutdown m 192 168 2 10 s f t 0 192 168
  • 无法从外部访问在 docker swarm 上运行的容器

    我正在 docker swarm 上运行我的容器 资产前端service 是我的前端应用程序 它在容器内运行 Nginx 并公开端口 80 现在如果我这样做 curl http 10 255 8 21 80 http 10 255 8 21
  • Azure 部署未安装requirements.txt 中列出的Python 包

    这是我第一次将 Flask Web 应用程序部署到 Azure 我跟着这个tutorial https azure microsoft com en us documentation articles web sites python cr
  • 无法将 TXT 记录设置为 Freenom 提供商中的域

    我想为分配给 Azure 中 WordPress 的域启用 SSL 我的域名是在 Freenom 中创建的 要完成该过程 我需要从 Azure 手动验证域 Azure 域验证 https i stack imgur com 4park jp
  • 无法以编程方式获取 Azure 存储帐户的密钥

    我正在尝试获取订阅中所有存储帐户的密钥 但我在使用 Azure Java SDK 的存储帐户之一上遇到此异常 com microsoft azure CloudException 状态代码 403 error code Authorizat
  • Docker 容器与主机网络的网络性能非常慢

    我遇到了 Docker 容器和主机网络之间网络性能缓慢的问题 我在 Docker 论坛上提出了这个问题 但到目前为止还没有收到答案 Problem 设置 同一本地网络上的两台 Mac 第一个运行 MQTT 代理 mosquitto 第二个运
  • 如何使用泛型类型的 DataContractSerializer 编写自定义序列化器?

    我想编写一个自定义序列化器 用于将会话状态存储到Azure 缓存 预览版 这意味着这个自定义序列化器必须实现IDataCacheObjectSerializer 如果我错了 请告诉我 我需要编写这个自定义序列化程序的原因是我需要序列化一些包
  • Android bindProcessToNetwork 和通过 MediaPlayer 的 RTSP 流

    我有一个应用程序正在使用bindProcessToNetwork 强制所有连接通过wifi 连接 这样做是因为 wifi 连接连接到没有互联网连接的相机 因此 Android 自然会尝试通过具有完整互联网连接的蜂窝数据连接推送所有流量 其代
  • 这种文件锁定方法可以接受吗?

    我们有 10 个 Linux 机器 每周必须运行 100 个不同的任务 这些计算机主要在我们晚上在家时执行这些任务 我的一位同事正在开发一个项目 通过使用 Python 自动启动任务来优化运行时间 他的程序将读取任务列表 抓取一个打开的任务
  • Android Studio 与本地网络共享上的项目文件

    这是我的设置 Android Studio 项目文件位于 Ubuntu 14 10 盒子上的共享文件夹中 尝试在 Windows 8 机器上运行 Android Studio 1 0 2 并将 U 驱动器映射到包含项目文件的 Ubuntu
  • Azure 辅助角色“请求输入之一超出范围”的内部异常。

    我在辅助角色中调用 CloudTableClient CreateTableIfNotExist 方法 但收到一个异常 其中包含 请求输入之一超出范围 的内部异常 我做了一些研究 发现这是由于将表命名为非法表名引起的 但是 我尝试为我的表命
  • UDP打洞

    我有一些关于 UDP 打洞的问题 基于维基百科http en wikipedia org wiki UDP hole punching http en wikipedia org wiki UDP hole punching 1 要在两方

随机推荐

  • 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 地址的每