[每日一氵] 双Ubuntu共享网络

以下是我的记录

两台Ubuntu,名为AB

  • A机有两张网卡,其中一个网卡可上网,另一个空着
  • B机有一张网卡

现在AB直连,假设 eth0 是A连接到互联网的接口,而 eth1 是要连接到服务器B的接口。

将两台服务器通过网线直接连接起来以共享网络连接。
这个过程通常称为“桥接”网络连接。
为了让服务器B可以通过服务器A上网,需要在服务器A上设置网络共享。

以下是A机器的操作:

  • 确定两个网络接口的名称。通常可以通过运行 ip addr 命令来找出。假设 eth0 是连接到互联网的接口,而 eth1 是要连接到服务器B的接口。
  • 设置IP转发。编辑 /etc/sysctl.conf 文件,确保包含以下行没被注释:
    net.ipv4.ip_forward=1
    
    然后执行 sudo sysctl -p 以应用这个更改
  • 设置NAT(网络地址转换)规则以共享互联网连接。可以使用 iptables 设置NAT,务必注意更换网卡
    sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
    sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
    
  • 配置服务器B,将服务器A设置为默认网关。还需要在服务器B上设置静态IP或者在服务器A上运行DHCP服务器来动态分配IP。

以下是B机器的操作:

B机设置为静态IP, 直接给 192.168.1.2 就行,掩码255.255.255.0,网关 192.168.1.1
DNS服务器为 192.168.1.1 8.8.8.8 8.8.4.4

补一个A机器的操作,将A机与B机直连的那个口IP也搞为静态IP
直接给 192.168.1.1 就行,掩码255.255.255.0,网关 192.168.1.1

此时可以尝试从A机ssh连接到B机,如果能通,或者端口拒绝,说明俩机的静态IP配置好了,如果这一步没OK,则从新搞IP,直到这一步OK,当然,直接ping,ping通也行

注意每一步似乎都要重新开关一下网络连接(我用的是图像化操作)

net.ipv4.ip_forward=1 有啥用

在 Linux 系统中,net.ipv4.ip_forward=1 设置是用来启用 IP 转发功能的。默认情况下,大多数 Linux 系统都是将这项功能关闭的,因为大多数系统被配置成单一的工作站,不需要转发和路由功能。


当设置 net.ipv4.ip_forward=1 时,告诉系统内核允许在网络接口之间转发数据包。这样,系统就可以充当路由器的角色,管理和转发进入的数据包到正确的目的地。


当前场景,服务器 A 有两个网络接口,其中一个连接到互联网,另一个将与服务器 B 直接相连。要使服务器 A 能够转发从服务器 B 来的数据包到互联网,以及反过来,需要在服务器 A 上启用 IP 转发功能。


要激活这个设置,需要编辑 /etc/sysctl.conf 文件并设置 net.ipv4.ip_forward 为 1。然后通过执行 sudo sysctl -p 命令(或者重启系统)来应用这个更改。


这是实现局域网内的设备(如服务器 B)通过另一台设备(服务器 A)连接到外部网络(如互联网)的关键步骤。

防火墙规则解释

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

以上这些 iptables 命令配置了服务器 A 的防火墙规则,以便它可以转发来自服务器 B 的流量,并允许这些流量通过服务器 A 的互联网连接出去。下面是每条命令的解释:

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE:

这条命令添加了一个 NAT (网络地址转换) 规则到 iptables 的 POSTROUTING 链。这个命令的作用是:

  • -t nat 指定了 nat 表,这是负责地址转换的 iptables 表。
  • -A POSTROUTING 指定了要将规则追加(Append)到 POSTROUTING 链。POSTROUTING 链用于处理即将离开主机的数据包。
  • -o eth0 指定了规则仅适用于从接口 eth0 离开的数据包,eth0 是连接到互联网的接口。
  • -j MASQUERADE 表明使用 MASQUERADE 动作。这个动作会隐藏服务器 B 的私有 IP 地址,将所有从服务器 B 发出的数据包的源 IP 地址变更为服务器 A 接口 eth0 的 IP 地址。这样,外部网络只看到来自服务器 A 的请求,而不是服务器 B。
sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT:

这条命令设置了转发规则,用来允许从互联网(通过 eth0)返回的与已经建立的连接相关的数据包或者已经建立的连接的数据包通过服务器 A 到达服务器 B。

  • -A FORWARD 将规则添加到 FORWARD 链,这个链用于处理经过主机但不是最终目标的数据包。
  • -i eth0 -o eth1 指定了规则匹配从 eth0 进入并且预计从 eth1 离开的数据包。
  • -m state 表示使用 state 匹配模块来检查数据包的连接状态。
  • –state RELATED,ESTABLISHED 表示只匹配那些处于已建立(ESTABLISHED)或者与已建立连接相关(RELATED)的数据包。
  • -j ACCEPT 表示允许这些数据包通过。
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT:

这条命令允许从服务器 B (eth1) 发出的所有流量通过服务器 A 到互联网 (eth0)。

  • -A FORWARD 同样是将规则添加到 FORWARD 链。
  • -i eth1 -o eth0 指定了规则匹配从 eth1 进入并且预计从 eth0 离开的数据包。
  • -j ACCEPT 表明允许这些数据包通过。

这些规则配置了服务器 A 作为一个路由器,允许服务器 B 的出站和入站流量通过服务器 A 的互联网连接。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/755033.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【漫谈】叔本华:不能让自己的头脑成为别人思想的跑马场

1.说明 标题是我自己总结加上的,正文都是节选自《叔本华:怎样读书才有效》,不同版本翻译略有不同。 不能让自己的头脑成为别人思想的跑马场。 2. 节选 1. 有自己的思考 我们读书时,是别人在代替我们思想,我们只不过…

mysql虚拟列Generated Column

目录​​​​​​​ 1、Generated Column简介 生成的列定义具有以下语法: 2、实践 2.1 存储格式为json字段增加索引 2.2 手机号后四位 3、虚拟列索引介绍 3.1 虚拟列索引的限制 3.1.1 Virtal Generated Column 4、阿里云数据库环境是否支持 下期扩展&…

大话适航(一)民航产业

0. 前言 eVTOL、飞行汽车和低空经济已成为热门话题,政府引导资本投入新赛道,也势必会吸引跨界厂商前来淘金。只说民用航空器整机制造,技术最接近的行业是军工,然后是无人机,还有汽车、农业机械等。“互联网”曾经掀起…

数据库应用:Linux 部署 GaussDB

目录 一、实验 1.环境 2.Linux 部署 GaussDB 3.Linux 使用 GaussDB 4.使用 GaussDB 进行表与索引操作 5.使用 GaussDB 进行视图操作 6.使用 GaussDB 进行联表查询 7.使用 GaussDB 进行外键关联 二、问题 1.运行python脚本报错 2. 安装GaussDB 报错 3. install 安装…

语音识别:whisper部署服务器,可远程访问,实时语音转文字(全部代码和详细部署步骤)

Whisper是OpenAI于2022年发布的一个开源深度学习模型,专门用于语音识别任务。它能够将音频转换成文字,支持多种语言的识别,包括但不限于英语、中文、西班牙语等。Whisper模型的特点是它在多种不同的音频条件下(如不同的背景噪声水…

[C语言]指针详解一、数组指针、二维数组传参、函数指针

一、数组指针 对一个数组&#xff0c;如果我们想要让一个指针指向这个数组&#xff0c;我们应该如何定义呢?我们知道一个数组定义本来就是一个指针&#xff0c;那为何要多定义一个数组指针呢?我们来看看下面这个代码就理解了 #include <stdio.h> int main() {int arr…

【基础】哪个厂家的零件更标准?

时间限制 : 1 秒 内存限制 : 128 MB 在统计描述中,方差用来计算每一个变量(观察值)与总体均数之间的差异。比如:甲乙 2 个厂商生产某零件,一批零件要求在尺寸合格的情况下,大小越一致越好,由于生产工艺的问题,零件生产厂商生产的零件不可能一模一样。 为了检测甲乙两…

前端结合 react axios 获取真实下载、上传进度

首页确保项目中使用了axios axios ondownloadprogress中total总为零&#xff0c;content-length不返回? 点我查看 Axios Documention npm i axiosyarn add axios以下我们举例接口调用配置说明&#xff1a; 由于接口下载时&#xff0c;不确定文件下载时长&#xff0c;所以直…

AIX系统下挂载ISO镜像

我们需要将AIX的iso文件作为软件包的安装源挂载的系统目录中 首先我们查看系统下有哪些挂载文件 如何挂载一个系统iso镜像文件 loopmount -i /ftp/iso/LK4T_1807_11.iso -o "-V cdrfs -o ro " -m /mnt/iso 需要安装软件直接执行smit就可以了&#xff0c;在smit中…

phpStudy安装thinkCMF8时,如何解决服务器rewrite和APIrewrite不支持的问题

解决步骤&#xff1a; 一&#xff1a;服务器rewrite 点击后面的问号跳转到官方文档链接&#xff1a; 复制红框内的代码 打开phpstudy&#xff0c;找到配置的站点&#xff0c;点击管理&#xff0c;找到伪静态 点击确认保存即可。 phpstudy会自动重启站点。 此时&#xff0c;…

内网信息收集

本机信息收集 一、手工 1.查询网络配置信息: ipconfig /all 2. 查询操作系统和版本信息: systeninfo 查看系统体系架构&#xff1a;echo %PROCESSOR_ARCHITECTURE% 查看安装的软件及版本信息&#xff1a; wmic product get name,version 3.查询本机服务信息&#…

docker init 生成Dockerfile和docker-compose.yml —— 筑梦之路

官网&#xff1a;https://docs.docker.com/engine/reference/commandline/init/ 简介 docker init是一个命令行实用程序&#xff0c;可帮助初始化项目中的 Docker 资源。.dockerignore它根据项目的要求创建 Dockerfile、Compose 文件。这简化了为项目配置 Docker 的过程&#…

【NLP9-Transformer经典案例】

Transformer经典案例 1、语言模型 以一个符合语言规律的序列为输入&#xff0c;模型将利用序列间关系等特征&#xff0c;输出在一个在所有词汇上的概率分布&#xff0c;这样的模型称为语言模型。 2、语言模型能解决的问题 根据语言模型定义&#xff0c;可以在它的基础上完成…

PHP反序列化---字符串逃逸(增加/减少)

一、PHP反序列化逃逸--增加&#xff1a; 首先分析源码&#xff1a; <?php highlight_file(__FILE__); error_reporting(0); class A{public $v1 ls;public $v2 123;public function __construct($arga,$argc){$this->v1 $arga;$this->v2 $argc;} } $a $_GET[v…

探索区块链世界:从加密货币到去中心化应用

相信提到区块链&#xff0c;很多人会想到比特币这样的加密货币&#xff0c;但实际上&#xff0c;区块链技术远不止于此&#xff0c;它正在深刻地改变我们的生活和商业。 首先&#xff0c;让我们来简单了解一下什么是区块链。区块链是一种分布式数据库技术&#xff0c;它通过将…

三维GIS仿真技术发展的几点思考

随着近几年三维GIS的快速发展&#xff0c;三维GIS可视化在数字孪生、元宇宙等热点方向起着重要技术支撑&#xff0c;结合这几年三维GIS技术进展,其出现的进展与问题&#xff0c;有以下几点思考&#xff0c;供读者参考&#xff1a; 1.关于国内GIS三维仿真技术处于什么水平&#…

蓝桥杯-python-递归

递归&#xff1a;通过自我调用解决问题的函数 注意&#xff1a; #1.递归出口 #2.当前问题如何变成子问题 例子&#xff1a;利用递归写一个阶乘函数&#xff0c;F(n),求n的阶乘 def f(n):if n < 1:return 1ans n * f(n-1)return ans print(f(5)) 例子&#xff1a;汉诺塔…

vsto excel 插件注册表属性值含义

在 VSTO (Visual Studio Tools for Office) 中&#xff0c;LoadBehavior 是用于指定 Office 插件加载行为的一个属性。具体含义如下&#xff1a; - LoadBehavior 0&#xff1a;此值表示插件已被禁用&#xff0c;将不会加载。 - LoadBehavior 1&#xff1a;此值表示插件将在 O…

【CSP试题回顾】202303-1-田地丈量

CSP-202303-1-田地丈量 解题思路 问题描述&#xff1a;给定一个长为 a、宽为 b 的矩形区域&#xff08;坐标范围从 (0,0) 到 (a,b)&#xff09;&#xff0c;以及 n 个其他矩形&#xff0c;每个矩形由其对角线的两个顶点 (x1, y1) 和 (x2, y2) 定义。需要计算这些矩形与给定矩形…

深度刨析Android ANR触发原理

一、概述 ANR(Application Not responding)&#xff0c;是指应用程序未响应&#xff0c;Android系统对于一些事件需要在一定的时间范围内完成&#xff0c;如果超过预定时间能未能得到有效响应或者响应时间过长&#xff0c;都会造成ANR。一般地&#xff0c;这时往往会弹出一个提…