自己在VMware虚拟机中开启一台主机的时候,发现比以往的开机速度慢了好多,起初不以为然,直到用Xshell通过ssh远程连接eth1的ip地址才发现连接失败(这个ip是之前eth1正常的时候获取的ip地址),后来用ifconfig命令发现eth1这个网卡并没有获取IP地址,eth1这个网卡设置的仅主机模式,并通过宿主机的VMware dhcp服务获取ip地址。
当向外界主机发送数据时,在它从网卡流入后需要对它做路由决策,根据其目标决定是流入本机数据还是转发给其他主机,如果是流入本机的数据,则数据会从内核空间进入用户空间(被应用程序接收、处理)。当用户空间响应(应用程序生成新的数据包)时,响应数据包是本机产生的新数据,在响应包流出之前,需要做路由决策,根据目标决定从哪个网卡流出。
这是100个 Linux 命令的第10篇文章,主要介绍如何在 Linux 主机中管理网络,包括网络接口配置、主机名配置等。
该文讲述了如何使用iptables实现NAT代理上网,首先需要在两台服务器上配置网络环境,然后在一台服务器上开启内核路由转发功能,并添加SNAT规则,最后保存并重启iptables服务。验证是否可以正常上网,将iptables设置为开机自启动。
该文介绍了如何利用Linux路由功能实现内网环境跨网段进行通讯的需求,总结了整体配置部署步骤,并分析了异常问题及解决方案,同时介绍了Linux路由部署项目在技术社区中的重要性。
SNAT(Source Network Address Translation 源地址转换)是Linux防火墙的一种地址转换操作,也是iptables命令中的一种数据包控制类型,其作用是根据指定条件修改数据包的源IP地址。 DNAT(Destination Network Address Translation 目标地址转换)是Linux防火墙的另一种地址转换操作,同样也是iptables命令中的一种数据包控制类型,其作用是可以根据指定条件修改数据包的目标IP地址和目标端口。
host2 双网卡 eth0 172.24.100.14/16 eth1 192.168.122.214/24
目前我们在公有云上买到的服务器,一般网卡类型都是virtio,这个可以通过ethtool -i eth1获取。
Q:什么是高可用技术呢? 答:在生产环境中我既要保证服务不间断的服务又要保证服务器稳定不down机,但是异常还是会发生; 比如说服务器硬件损坏导致服务器down机,我该如何保证服务器down机后继续提供服务呢?这时我就应该请出高可用技术来帮忙了,当我们的服务器发生故障后不能继续时,高可用集群技术解决将业务及服务自动转移至其他主机服务器上继续服务,保证服务架构不间断运行。
02 #如果不指定Master或者BACKUP,那priority最高的就是master 03 04 interface eth0 05 #监听的实际网口 06 07 virtual_router_id 51 08 #组播ID,通过224.0.0.18可以监听到现在已经存在的VRRP ID,最好不要跟现有ID冲突 09 10 priority 100 11 #权重为100,权重数字越大就越高 12 13 advert_int 1 14 #发送组播包的间隔时间,默认为1秒 15 16 smtp_alert 17 #发送邮件报警 18 19 authentication { 20 auth_type PASS 21 auth_pass hdtv 22 } 23 #这个是验证类型为PASS(明文),密码为hdtv。验证类型也可以选择IPSEC,但是官方是不推荐的 24 25 virtual_ipaddress { 26 10.1.41.141 27 } 28 #虚拟IP为10.1.41.141 29 30 #############下面这些是文档中存在,但是在上面没有用到的############################# 31 32 dont_track_primary 33 #忽略网卡错误 34 35 track_interface { 36 eth0 37 eth1 38 } 39 #监控eth0和eth1这2块网卡的状态 40 41 mcast_src_ip 42 #使用这个地址作为多播包的源IP,而不是使用interface eth0上的IP 43 44 lvs_sync_daemon_interface eth1 45 #绑定eth1作为lvs同步的 46 47 garp_master_delay 2 48 #master和slave漂移时间改为2秒,默认位5秒,怪不得我昨天发现每次都是5秒才转移 49 50 virtual_ipaddress { 51 / brd dev scope label 192.168.200.17/24 dev eth1 52 192.168.200.18/24 dev eth2 label eth2:1 53 } 54 #vip可以写成整个网段和某块网卡上的所有IP 55 56 virtual_ipaddress_excluded { 57 / brd dev scope / brd dev scope ... 58 } 59 #排除哪些IP 60 61 virtual_routes { 62 src 192.168.100.1 to 192.168.109.0/24 via 192.168.200.254 dev eth1 192.168.110.0/24 via192.168.200.254 dev eth1 192.168.111.0/24 dev eth2 192.168.112.0/24 via 192.168.100.254 63 } 64 #当状态切换的时候会增加和删除路由,格式如src [to] / via|gw dev scope tab 65 66 nopreempt 67 #这个参数是用来,当master当掉,slave接替原来的master作为master后,这个时候当master重新起来后,有了这个参数后原来的slave就不会自动再自动切换为slave,而是继续作为master 68 69 preempt_delay 300 70 #接上面那个参数,这个表示,只有在老的master重新正常300秒后,老的master才会切换为master,这个参数范围是0-1000,默认为0 71 72 notify_master | notify_backup 73 | notify_fault | notify | 74 smtp_alert 75 #各种报警方式,可以定义具体的内容来达到不同的报警信息。
命令brctl主要运用于 Linux 网桥配置,Linux网关模式下将有线LAN和无线LAN共享网段实现局域网内互联;
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
企业级Linux发行版CentOS安装过后默认是没有开启网络连接服务的,必须手动启动后才能使用网络服务。最新版CentOS 7.0安装后网络配置文件在/etc/sysconfig/network-scripts/目录下,进入该目录后找到其下的网络配置文件:ifcfg-enp0s3(具体文件名会因硬件而异,符合 ifcfg-en* 格式就行),配置文件默认内容如下:
要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在 Linux 系统中,设置路由通常是为了解决以下问题:该 Linux 系统在一个局域网中,局域网中有一个网关,能够让机器访问 Internet,那么就需要将这台机器的 IP 地址设置为 Linux 机器的默认路由。
最近项目遇到了一个非常神奇的问题,细节不过多描述了,问题大概跟下图中的拓扑类似,就是路由器将数据包发给了服务器的eth1口,但是服务器的路由是从eth2出去,导致了此服务器不响应外部任何的业务请求。
如图所示,R1,R2,R3为模拟的路由器,A,B为两个主机。配置IP也在图中有所说明。
作为一个大公司的运维,手头管理了成百上千的服务器是家常便饭,甚至更多。而我们一般都是用跳板机登陆,由于这些机器一般都是克隆或者虚拟化出来的,所以登陆后的命令行提示符几乎是一个模子刻出来的,比如都是:[
linux下添加路由的方法 一、查看及添加临时路由 1.查看路由(linux下) [root@nfs ~]# route #同netstat -rn Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.90.2 * 255.255.255.255 UH 0 0 0 tun0 192.168.80.0 * 255.255.255.0 U 0 0 0 eth0 192.168.10.0 * 255.255.255.0 U 0 0 0 eth1 192.168.90.0 192.168.90.2 255.255.255.0 UG 0 0 0 tun0 link-local * 255.255.0.0 U 1002 0 0 eth0 link-local * 255.255.0.0 U 1003 0 0 eth1 default 192.168.80.2 0.0.0.0 UG 0 0 0 eth0 注:windows查看路由命令:route print或netstat -rn 输出结果中各个字段的含义是: Destination表示路由的目标IP地址 Gateway表示网关使用的主机名或者是IP地址。上面输出的”*”表示没有网关。 Genmask表示路由的网络掩码 Flags是表示路由的标志。可用的标志及其意义是:U表示路由在启动,H表示target是一台主机,G表示使用网关,R表示对动态路由进行复位设置;D表示动态安装路由,M表示修改路由,!表示拒绝路由 Metric表示路由的单位开销量 Ref表示依赖本路由现状的其它路由数目 Use表示路由表条目被使用的数目 Iface表示路由所发送的包的目的网络 2.使用 route 命令添加 使用route 命令添加的路由,机器重启或者网卡重启后路由就失效了 方法: 添加到主机的路由 route add -host 192.168.168.110 dev eth0 route add -host 192.168.168.119 gw 192.168.168.1 添加到网络的路由 route add -net IP netmask MASK eth0 route add -net IP netmask MASK gw IP route add -net IP/24 eth1 添加默认网关 route add default gw IP 删除路由 route del -host 192.168.168.110 dev eth0 3.使用ip route添加路由 添加路由 ip route add 192.168.0.0/24 via 192.168.0.1 ip route add 192.168.1.1 dev 192.168.0.1 删除路由 ip route del 192.168.0.0/24 via 192.168.0.1 二、在linux下设置永久路由的方法: 1.在/etc/rc.local里添加 route add -net 192.168.3.0/24 dev eth0 route add -net 192.168.2.0/24 gw 192.168.3.254 2.在/etc/sysconfig/network里添加到末尾 方法:GATEWAY=gw-ip 或者 GATEWAY=gw-dev 3./etc/sysconfig/static-router : 这个是network脚本执行时调用的一个文件 any net x.x.x.x/24 gw y.y.y.y any net 192.168.3.0/24 gw 192.168.3.254 any net 10.250.228.128 netmask 255.255.255.192 gw 10.250.228.129 4.创建名为route- eth0的文件 vi /etc/sysconfig/network-script/route-eth0 在此文件添加如下格式的内容 192.168.1.0/24 via 192.168.0.1 5.查看经过的路由 linux查看经过的路由traceroute www.baidu.com windows查看经过的路由tracert -d www.baidu.com 三、开启 IP 转发: echo “1” >/proc/sys/net/ipv4/ip_forward (临时) vi /etc/sysctl.conf –> net.ipv4.ip_forward=1 (永久开启)
# route -n // 显示路由表,哪条在前就用哪条,都没有就用default
lsof命令用来查看打开的文件(list open file),由于Linux中‘一切皆文件’,那么socket,pipe等也是文件,因此能够查看网络连接和网络设备,其中网络设备相关的是-i选项,它输出符合条件的进程(4,6,协议,:端口,@ip等),格式为[46][protocol][@hostname|hostaddr]。 查看端口3306有没有打开,哪个进程打开的:
网络拓扑如下所示,我们在这里用到了三台机子做实验,分别是①、④、⑦号机,使用①号机ping⑦号机,④号机作为路由转发。
这里使用的是win7系统,可能会出现powershell过低的情况,所以需要先检查本机的powershell版本
在日常运维作业中,经常会碰到路由表的操作。下面就linux运维中的路由操作做一梳理: ------------------------------------------------------------------------------ 先说一些关于路由的基础知识: 1)路由概念 路由: 跨越从源主机到目标主机的一个互联网络来转发数据包的过程 路由器:能够将数据包转发到正确的目的地,并在转发过程中选择最佳路径的设备 路由表:在路由器中维护的路由条目,路由器根据路由表做路径选择 直连路由:当在路由器
注意:既然是在开发板和电脑之间测试网络,那双方需要有网络连接。两者之间需要有一个路由器,开发板通过网线与路由器连接。而电脑与路由器之间,可以使用网线连接,也可以使用 WIFI 连接。
一、环境介绍1.linux版本:CentOS6.8,CentOS7.2两台主机分别加载两块网卡,分别作为路由器的两个端口
本文整理了在实践过程中使用的Linux网络工具,这些工具提供的功能非常强大,我们平时使用的只是冰山一角,比如lsof、ip、tcpdump、iptables等。本文不会深入研究这些命令的强大用法,因为每个命令都足以写一篇文章,本文只是简单地介绍并辅以几个简单demo实例,旨在大脑中留个印象,平时遇到问题时能够快速搜索出这些工具,利用强大的man工具,提供一定的思路解决问题。
CentOS中提供DHCP服务的软件叫做dhcp,CentOS中默认没有安装。我们可以通过yum命令安装
TCP协议规定只有处于同一个网段的IP才能实现互通,如果处于不同网段,则需要借助于所属的网关,即我们可以配置一台双网卡机器作为网关,然后指定路由线路实现跨网段访问。
针对目前公司的数据库架构要做统计规划和调整,所以针对不同的业务环境要选择合适的架构就比较重要,同时作为运维人员又要考虑到维护的便捷性(不能做过多架构维护),最终停留在mha+vip/主从+vip/mycat集群/域名+主从这几种架构或组合,这里就分布对不同架构部署做下记录并对比起优劣,针对不同场景做出合适的选择。
查看状态 systemctl status firewalld / firewall-cmd --state
「 我感到难过,不是因为你欺骗了我,而是因为我再也不能相信你了。 -----尼采」
我们都知道google的公共DNS为:8.8.8.8,甚至我们可以在全球任何地方都能ping通这个IP或者通过dig能解析域名,例如如下操作:
周五下班时刻,开发人员跟我反馈有业务偶尔超时,但业务很长时间并未重现异常, 让开发者以网络抖动打发掉这些询问者(实在抽不开时间)。熟悉业务的人即将抽出调岗,新的同学刚入职时间不久,还不能非常熟练处理业务问题,这个时刻只能自己先顶上了。
随着互联网的飞速发展,毫无疑问,互联网上的安全,操作系统平台的安全也逐渐成为人们所关心的问题。而许多网络服务器、工作站所采用的平台为Linux/UNIX平台。Linux平台作为一个安全性、稳定性比较高的操作系统也被应用到了更多领域。本文带领大家探讨了Linux系统管理员应该掌握的20个防火墙应用技巧。
答:杀死一个进程,应获得这个进程控制的权利,比如获得进程所属账户的权限;或者获得超级账户的权限。如果是peter账户,没有获得jason账户的权限,因此,杀死jason账户下运行的进程是被禁止的。
4. 启动 service keepalived star |stop| restart
以前尝试使用consul搭建了docker集群,当时对底层为什么要执行那些命令不是太理解,直到昨天研究了etcd集群之后,终于对docker集群搭建时的一些命令有了新的认识。今天尝试配合etcd搭建docker集群,以这里记录以备忘。 创建docker swarm集群mange节点 还是使用上一篇文章里搭建好的etcd集群服务,其地址为http://192.168.99.100:2381,http://192.168.99.100:2383,http://192.168.99.100:2385 1 dock
Squid是Linux系统中最为流行的一款高性能代理服务软件,通常用作Web网站的前置缓存服务,能够代替用户向网站服务器请求页面数据并进行缓存.简单来说,Squid服务程序会按照收到的用户请求向网站源服务器请求页面,图片等所需的数据,并将服务器返回的数据存储在运行Squid服务程序的服务器上.当有用户再请求相同的数据时,则可以直接将存储服务器本地的数据交付给用户,这样不仅减少了用户的等待时间,还缓解了网站服务器的负载压力.
很早就用过Wireshark进行抓包分析,但当时写过滤表达式很是一知半解,多半是从网上抄来的,根本没理解过滤表达式的含义。今天有幸看到一篇tcpdump入门使用技巧,看了下感觉挺好,终于知道到底怎么写过滤表达式了,这里转载过来备忘一下。
由上图我们可以看到创建的网络ID为4554d78082da ,使用ip addr查看本机网络:
Linux下用于配置或者查看IP地址、路由表的命令有很多,本文打算将其都罗列出来,后面想到其它的命令再一一补充。
PPPoE是point-to-point protocol over ethernet的简称,可以使以太网的主机通过一个简单的桥接设备连到一个远端的接入集中器上。通过pppoe协议,远端接入设备能够实现对每个接入用户的控制和计费。rp-PPP0E是一个集成了拨号客户端和服务端的解决方案。 下载地址:http://www.roaringpenguin.com/products/pppoe
eth0:10.0.7.2 gw :10.0.7.254 netmask:255.255.255.0
【网络配置】——【接口/区域】,并且配置好接口IP地址等信息。ETH1口配置成外网区域,
PPTP协议,是点对点协议(PPP)为基于点对点连接的多协议自寻址数据包的传输提供了一个标准方法。 PPP 最初设计是为两个对等结构之间的 IP 流量的传输提供一种封装协议。在 TCP-IP 协议集中它是一种关于同步调制连接的数据链路层协议(OSI 模式中的第二层),替代了原非标准第二层协议,即 SLIP。除了 IP 以外 PPP 还可以传送其它协议,包括 DECnet 和 Novell 的 Internet 网包交换(IPX)。 PPP 主要由以下几部分组成: 封装:一种封装多协议数据报的方法。PPP 封装提供了不同网络层协议同时通过统一链路的多路技术。(人们)精心的设计 PPP 封装,使其保有对常用支持硬件的兼容性。 链路控制协议:为了在一个很宽广的环境内能足够方便的使用,PPP 提供了 LCP。LCP 用于就封装格式选项自动的达成一致,处理数据包大小的变化,探测 looped-back 链路和其他普通的配置错误,以及终止链路。提供的其他可选设备有:对链路中对等单元标识的认证,和链路功能正常或链路失败情况下的决定。 网络控制协议:一种扩展链路控制协议,用于建立、配置、测试和管理数据链路连接。 配置:通过链路控制协议使 PPP 链路很容易配置。该机制也应用于其它控制协议如网络控制协议(NCPs) 为了建立点对点链路通信,PPP 链路的每一端,必须首先发送 LCP 包以便设定和测试数据链路。在链路建立之后,LCP 可选设备才可以被认证。然后,PPP 必须发送 NCP 包以便选择和设定一个或更多的网络层协议。一旦每个被选择的网络层协议都被设定好了,来自每个网络层协议的数据报就能在连路上发送了。 链路将保持通信设定不变,直到外在的 LCP 和 NCP 关闭链路,或者是发生一些外部事件的时候(如,休止状态的定时器期满或者网络管理员干涉)。
1、原理:在路由器后(PSOTROUTING)将内网的ip地址修改为外网网卡的ip地址。
本文只讲解实战应用,不会涉及原理讲解。如果想要了解iptables的工作流程或原理可参考如下博文。
tcpdump 的抓包保存到文件的命令参数是-w xxx.cap 抓eth1的包 1 tcpdump -i eth1 -w /tmp/xxx.pcap 抓eth1的包,用ip+port的形式显示通信对 1 tcpdump -i eth1 -nn -w /tmp/xxx.pcap 抓 192.168.1.123的包 1 tcpdump -i eth1 host 192.168.1.123 -w /tmp/xxx.cap 抓192.168.1.123的80端口的包 1 tcpdump -i eth1 ho
领取专属 10元无门槛券
手把手带您无忧上云