详解Linux 主机网络接入配置

详解Linux 主机网络接入配置

前言:

网络配置是我们在安装好操作系统之后,需要解决的第一步。现时代没有接入网络的主机已然等同于一堆废铁。在网络配置的过程中,通常我们需要配置本机IP地址,缺省网关,DNS,主机名等等。本文主要描述在Linux环境下,主要以传统命令行方式讲解如何将主机接入网络。对于网路配置的新命令如ip,nmcli等等在以后的文章中描述。

一、网络配置概述

主机接入互联网前提:遵循TCP/IP协议栈

配置主机接入TCP/IP网络需要配置的内容:

  IP/Netmask
  路由:
    主机路由:一台主机
    网络路由:是一个网络
    默认路由(缺省网关):
  DNS服务器:
    主DNS服务器
    备用DNS服务器
  主机名:computer_name.domain.com

网络设备表示方法(CentOS7版本)

  内核识别设备:驱动

  网卡命名机制

    CentOS 7中,systemd对网络设备的命名方式
    (a) 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,例如eno1
    (b) 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如ens1
    (c) 如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s0
    (d) 如果用户显式启动,也可根据MAC地址进行命名,enx2387a1dc56;
    (e) 上述均不可用时,则使用传统命名机制,基于BIOS支持biosdevname中
    (f) 本地回环 lo
    内置网卡:em1,em2
     pci卡:pYpX Y:slot ,X:port

  名称组成格式

    en: Ethernet 有线局域网
    wl: wlan 无线局域网
    ww: wwan无线广域网

  名称类型:

    o: 集成设备的设备索引号
    s: 扩展槽的索引号
    x: 基于MAC地址的命名
    ps: enp2s1

二、IP地址配置

动态配置(IP/Netmask):

  DHCP服务器(Dynamic Host Configuration Protocol)

静态指定:

  用户空间工具(ifconfig,ip命令),立即生效,但不会长久有效(地址配置在内核,显示在用户空间)
  网络设备服务配置文件,完成长久有效配置:
    /etc/sysconfig/network-script/ifcfg-eth0
  GUI/TUI配置工具

网路配置命令

ifconfig(传统配置命令)
  ifconfig:显示所有活动状态的相关信息
  ifconfig Interface:仅显示指定接口的相关信息
  ifconfig Interface Address
    ip/mask
      长格式:
      ifconfig Interface IP netmask MASK
    CIDR:无类别的预见路由
    ifconfig Interface IP/MASK

ifconfig示例

# more /etc/redhat-release ###当前环境
CentOS Linux release 7.2.1511 (Core)
# ifconfig |grep eno -A1 ###当前服务器有2块网卡,分别为eno16777728,eno33554960
eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.24.8.131 netmask 255.255.255.0 broadcast 172.24.8.255
--
eno33554960: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.81.144 netmask 255.255.255.0 broadcast 192.168.81.255

# ifconfig eno33554960 192.168.81.145/24
# ifconfig eno33554960|head -2
eno33554960: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.81.145 netmask 255.255.255.0 broadcast 192.168.81.255  

# ifconfig eno33554960 down ###禁用当前网卡
# ifconfig eno33554960 up  ###激活当前网卡
# ifconfig eno33554960|head -2 ###再次查看网卡,由于使用了DHCP,IP地址被分配为原地址
eno33554960: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.81.144 netmask 255.255.255.0 broadcast 192.168.81.255

网卡手工配置示例
# vi /etc/sysconfig/network-scripts/ifcfg-eno16777728
TYPE="Ethernet"   //指定网络类型为以太网模式
BOOTPROTO="dhcp" //指定启动地址协议的获取方式(dhcp或bootp为自动获取,none
DEFROUTE="yes"  //是否把这个eno16777728设置为默认路由
PEERDNS="yes"   //是否允许DHCP服务分配地址时直接更新/etc/resolv.conf中的DNS服务器地址
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no" //如果IPv4配置失败,设备是否被禁用
IPV6INIT="yes"   //允许在该网卡上启动IPV6的功能
IPV6_AUTOCONF="yes" //是否使用IPV6地址的自动配置
IPV6_DEFROUTE="yes"  ### Author : Leshami
IPV6_PEERDNS="yes"   ### Blog : http://blog.csdn.net/leshami
IPV6_PEERROUTES="yes" ### QQ/Weixin : 645746311
IPV6_FAILURE_FATAL="no"
NAME="eno16777728"  //网络连接标识名
UUID="52ff246a-d965-4056-b34f-16e8f4df2c0a" //网卡全球通用唯一识别码
DEVICE="eno16777728"      //网络连接标识名
ONBOOT="yes"        //网卡开机后自动启动
USERCTL=no         //是否允许普通用户操作网卡
PEERDNS={yes|no}  //是否允许DHCP服务分配地址时直接更新/etc/resolv.conf中的DNS服务器地址
# systemctl restart network.service  //重启网络服务,使配置生效

三、路由配置

route(传统配置命令)
route:
 route:显示路由信息(网关指的就是下一跳的地址,下一跳地址必须与本地主机位于同一网络)
  -n:使用数字格式显示,不反解地址到主机名
 route add //添加路由
  -host HOST_IP gw Next [dev Device]
  -net Net_ADDR
  -net 0.0.0.0 目标地址为任意地址,即默认路由

  route del //删除路由
   -host HOST_IP gw 下一跳
   -net Net_ADDR gw 下一跳

示例:
# route
# route
Kernel IP routing table
Destination Gateway  Genmask  Flags Metric Ref Use Iface
default  192.168.81.2 0.0.0.0  UG 100 0  0 eno33554960
172.24.8.0  0.0.0.0  255.255.255.0 U 100 0  0 eno16777728
192.168.81.0 0.0.0.0  255.255.255.0 U 100 0  0 eno33554960

示例中对于目表为192.168.81.0以及172.24.8.0网络段的访问,Gateway为4个0表示没有网络,也就是说属于直连网络,无需路由
对于目标为default的(当使用route -n时,default为4个0)网络段时,通过缺省网关192.168.81.2连接目标指向单个
主机的为主机路由,目标网络地址的为网络路由,目标指向所有地址(0.0.0.0或者default)的为默认路由。  

route输出具体描述
route命令输出的路由表字段含义如下:
 Destination 目标
   The destination network or destination host. 目标网络或目标主机。
 Gateway 网关
   The gateway address or '*' if none set. 网关地址,如果没有就显示星号。
 Genmask 网络掩码
   The netmask for the destination net; '255.255.255.255' for a
   host destination and '0.0.0.0' for the default route.
 Flags:总共有多个旗标,代表的意义如下:
  U (route is up):该路由是启动的;
  H (target is a host):目标是一部主机 (IP) 而非网域;
  G (use gateway):需要透过外部的主机 (gateway) 来转递封包;
  R (reinstate route for dynamic routing):使用动态路由时,恢复路由资讯的旗标;
  D (dynamically installed by daemon or redirect):已经由服务或转 port 功能设定为动态路由
  M (modified from routing daemon or redirect):路由已经被修改了;
  ! (reject route):这个路由将不会被接受(用来抵挡不安全的网域!)
  A (installed by addrconf)
  C (cache entry)
 Metric 距离、跳数。暂无用。
   The 'distance' to the target (usually counted in hops). It is
   not used by recent kernels, but may be needed by routing dae-
   mons.
 Ref 不用管,恒为0。
   Number of references to this route. (Not used in the Linux ker-nel.)
 Use 该路由被使用的次数,可以粗略估计通向指定网络地址的网络流量。
   Count of lookups for the route. Depending on the use of -F and
 Iface 从哪一个网络接口路由出去,如本例中的eno33554960
   Interface to which packets for this route will be sent.

添加网络路由
 当前本机IP地址为172.24.8.131
 假定要到达目标地址为:192.168.10.0/24,下一跳为 172.24.8.2 则添加路由命令如下
 # route add -net 192.168.10.0/24 gw 172.24.8.2 ###此时为网络网关(路由)

 # route -n
 Kernel IP routing table
 Destination Gateway  Genmask  Flags Metric Ref Use Iface
 0.0.0.0  192.168.81.2 0.0.0.0  UG 100 0  0 eno33554960
 172.24.8.0  0.0.0.0  255.255.255.0 U 100 0  0 eno16777728
 192.168.10.0 172.24.8.2  255.255.255.0 UG 0  0  0 eno16777728
 192.168.81.0 0.0.0.0  255.255.255.0 U 100 0  0 eno33554960

 可以看到上述多出了一条路由记录,目标网络为192.168.10.0
 新添加的路由接口设备自动使用了eno16777728网卡,因为172.24.8.2与eno16777728 IP为同一网段内

添加主机路由
 假定要到达目标地址为:192.168.20.1,下一跳为: 172.16.100.177
 # route add -host 192.168.20.1 gw 172.16.100.177
 SIOCADDRT: Network is unreachable #提示网络不可达,因为172.16.100.177不在当前两块网卡的任一网段内

 下面修改下一跳地址为172.24.8.254再次尝试添加
  # route add -host 192.168.20.1 gw 172.24.8.254 ###此处无需指定隐码
  # route -n ###在下面的列表中Flags有一个H,表示此条为主机路由
  Kernel IP routing table
  Destination Gateway  Genmask  Flags Metric Ref Use Iface
  0.0.0.0  192.168.81.2 0.0.0.0  UG 100 0  0 eno33554960
  172.24.8.0  0.0.0.0  255.255.255.0 U 100 0  0 eno16777728
  192.168.10.0 172.24.8.2  255.255.255.0 UG 0  0  0 eno16777728
  192.168.20.1 172.24.8.254 255.255.255.255 UGH 0  0  0 eno16777728
  192.168.81.0 0.0.0.0  255.255.255.0 U 100 0  0 eno33554960

 路由表描述
  对于请求到192.168.10.0的网路,路由地址为172.24.8.2,经由网卡eno16777728
  对于请求到192.168.20.1的主机,路由地址为172.24.8.254,经由网卡eno16777728
  对于请求172.24.8.0以及192.168.81.0的网络,为直连网络,无需路由
  对于请求到0.0.0.0的网络经由192.168.81.2从网卡eno33554960进行路由,如访问百度则由此路由

 # ping www.baidu.com -c 2
 PING www.baidu.com (14.215.177.38) 56(84) bytes of data.
 64 bytes from 14.215.177.38: icmp_seq=1 ttl=128 time=5.76 ms
 64 bytes from 14.215.177.38: icmp_seq=2 ttl=128 time=6.13 ms

删除路由
 假定需要删除默认路由
  # route del -net 0.0.0.0 netmask 0.0.0.0 ###等价于 route del default
  # route |grep -i default

  # ping www.baidu.com ###缺省路由被删除后,ping百度不可达
  connect: Network is unreachable    

 删除之前添加的网络路由和主机路由
  # route del -net 192.168.10.0/24
  # route del -host 192.168.20.1
  # route -n
  Kernel IP routing table
  Destination Gateway  Genmask  Flags Metric Ref Use Iface
  172.24.8.0  0.0.0.0  255.255.255.0 U 100 0  0 eno16777728
  192.168.81.0 0.0.0.0  255.255.255.0 U 100 0  0 eno33554960

添加缺省网关
 # route add default gw 192.168.81.2
 # route add -net 0.0.0.0 gw 192.168.81.2 ###与上一条命令等价

路由静态配置文件
 /etc/sysconfig/network
 /etc/sysconfig/network-scripts/route-ethX | route-pppX

 配置文件的格式1:每行一个要配置的路径条目
  目标 via 下一跳
  例子:
  192.168.0.0/24 via 172.16.100.177

 配置文件的格式2:每一组一个路由条目
  ADDRESS#=目标
  NETMASK#=掩码
  GATEWAY#=下一跳

  ADDRESS0=192.168.0.0
  NETMASK0=255.255.255.0
  GATEWAY0=172.16.100.1

四、DNS配置

DNS服务器指向:
 配置文件:/etc/resolv.conf
  最多三个:
    nameserver DNS_SERVER_IP
    nameserver 8.8.8.8

 测试DNS解析
  dig -t A 域名 //正解测试
  dig -x IP  //反解测试

查看当前主机DNS解析配置
 # more /etc/resolv.conf
 # Generated by NetworkManager
 search localdomain example.com
 nameserver 192.168.81.2
 nameserver 172.24.8.1

 # dig -t A www.oracle.com

 ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -t A www.oracle.com
 ;; global options: +cmd
 ;; Got answer:
 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11680
 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0

 ;; QUESTION SECTION:
 ;www.oracle.com.      IN  A

 ;; ANSWER SECTION:
 www.oracle.com.  5  IN  CNAME ds-www.oracle.com.edgekey.net.
 ds-www.oracle.com.edgekey.net. 5 IN CNAME e11582.dscx.akamaiedge.net.
 e11582.dscx.akamaiedge.net. 5 IN  A  184.28.37.127

 ;; Query time: 12 msec
 ;; SERVER: 192.168.81.2#53(192.168.81.2) //通过本地IP 192.168.81.2递交外部DNS服务器解析
 ;; WHEN: Mon Sep 04 21:14:31 CST 2017
 ;; MSG SIZE rcvd: 128

 # dig -x 184.28.37.127

 ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -x 184.28.37.127
 ;; global options: +cmd
 ;; Got answer:
 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20357
 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 8, ADDITIONAL: 9

 ;; OPT PSEUDOSECTION:
 ; EDNS: version: 0, flags:; MBZ: 0005 , udp: 512
 ;; QUESTION SECTION:
 ;127.37.28.184.in-addr.arpa. IN  PTR

 ;; ANSWER SECTION:
 127.37.28.184.in-addr.arpa. 5 IN  PTR a184-28-37-127.deploy.static.akamaitechnologies.com.

 ;; AUTHORITY SECTION:
 28.184.in-addr.arpa. 5  IN  NS  ns5.reverse.deploy.akamaitechnologies.com.
 28.184.in-addr.arpa. 5  IN  NS  ns1.reverse.deploy.akamaitechnologies.com.
 28.184.in-addr.arpa. 5  IN  NS  ns7.reverse.deploy.akamaitechnologies.com.
 28.184.in-addr.arpa. 5  IN  NS  ns3.reverse.deploy.akamaitechnologies.com.
 28.184.in-addr.arpa. 5  IN  NS  ns4.reverse.deploy.akamaitechnologies.com.
 28.184.in-addr.arpa. 5  IN  NS  ns8.reverse.deploy.akamaitechnologies.com.
 28.184.in-addr.arpa. 5  IN  NS  ns2.reverse.deploy.akamaitechnologies.com.
 28.184.in-addr.arpa. 5  IN  NS  ns6.reverse.deploy.akamaitechnologies.com.

 ;; ADDITIONAL SECTION:
 ns1.reverse.deploy.akamaitechnologies.com. 5 IN A 96.7.50.32
 ns2.reverse.deploy.akamaitechnologies.com. 5 IN A 2.16.40.32
 ns3.reverse.deploy.akamaitechnologies.com. 5 IN A 23.74.25.32
 ns4.reverse.deploy.akamaitechnologies.com. 5 IN A 95.100.168.32
 ns5.reverse.deploy.akamaitechnologies.com. 5 IN A 95.100.173.32
 ns6.reverse.deploy.akamaitechnologies.com. 5 IN A 23.61.199.32
 ns7.reverse.deploy.akamaitechnologies.com. 5 IN A 184.26.161.32
 ns8.reverse.deploy.akamaitechnologies.com. 5 IN A 2.22.230.32

 ;; Query time: 205 msec
 ;; SERVER: 192.168.81.2#53(192.168.81.2)
 ;; WHEN: Mon Sep 04 21:17:05 CST 2017
 ;; MSG SIZE rcvd: 407

网络服务启动脚本

 CentOS 5/6:
  服务脚本:/etc/init.d/network

 CentOS 6
  服务脚本:/etc/init.d/NetworkManager

  服务脚本:SysV style LSB
   控制运行在后台守护进程,接受参数{start|stop|restart|status}
   脚本位置:/etc/rc.d/init.d或/etc/init.d

  配置某服务开机自动启动:chkconfig Src_Script_Name on
  禁止开机自动启动:chkconfig Src_Script_Name off
  查看 chkconfig --list

  调用机制:
   1./etc/init.d/Script_Name {start|stop|restart|status}
   1.service Script_Name {start|stop|restart|status}

  CentOS 7
   服务脚本:/etc/init.d/network
   # systemctl start network.service

如何实现在单网卡上配置多个地址(通常用于VIP)
 通过网络接口别名来实现
 eth0X
 eth0:X eth0:0 eth0:1....

 配置1:
 ifconfig ethX:Y IP/mask
 配置2:
 ifcfg-ethX:Y
  DEVICE=ethX:Y
  BOOTPROTO={none|static}
  IPADDR=
  NETMASK=
  GATEWAY=
 非主地址(别名地址)不支持DHCP协议获取

五、主机名配置

短主机名,如mycomputer1
长主机名(FQDN),如mycomputer.example.com

CentOS 5/6配置主机名
 查看主机名:
  # hostname
  # more /etc/sysconfig/network
  # more /proc/sys/kernel/hostname

 临时修改主机名:
  # hostname new_host_name
  # hostname new_host_name.domain.com

 永久修改主机名(需要重启):
  # vi /etc/sysconfig/network 

 修改以及立即生效
  # echo new_host_name >/proc/sys/kernel/hostname
  # sysctl kernel.hostname=new_host_name     

  示例
   # more /etc/redhat-release
   CentOS release 6.7 (Final)
   # hostname
   node133
   # hostname host133
   # hostname
   host133

   [root@host133 ~]# echo host133.example.com >/proc/sys/kernel/hostname
   [root@host133 ~]# hostname
   host133.example.com
   [root@host133 ~]# sysctl kernel.hostname=host133.example.com
   kernel.hostname = host133.example.com
   [root@host133 ~]# hostname
   host133.example.com

CentOS 7 配置主机名
 在RHEL7中,引入了静态(static)、瞬态(transient)和灵活(pretty)三种主机名。
 “静态”主机名——也称为内核主机名,是系统在启动时从/etc/hostname自动初始化的主机名。

 “瞬态”主机名——是在系统运行时临时分配的主机名,例如,通过DHCP或DNS服务器分配。
  静态主机名和瞬态主机名都遵从作为互联网域名同样的字符限制规则。

 “灵活”主机名——是允许使用自由形式(可包括特殊/空白字符)的主机名,以展示给终端用户(如Tom‘s Computer)

 查看主机名的命令一般格式如下:

  hostnamectl [status] [--static|--transient|--pretty] 

  选项说明如下:
  status——可同时查看静态、瞬态和灵活三种主机名及其相关的设置信息。
  --static——仅查看静态(永久)主机名。
  --transient——仅查看瞬态(临时)主机名。
  --pretty ——仅查看灵活主机名。

  [root@centos7 ~]# hostnamectl status
   Static hostname: centos7.example.com
     Icon name: computer-vm
     Chassis: vm
    Machine ID: 8ef737feff1942798ec060bf5a162df6
     Boot ID: e2c8eded07f04e879d2b160d9a6bc6cf
   Virtualization: vmware
   Operating System: CentOS Linux 7 (Core)
    CPE OS Name: cpe:/o:centos:centos:7
     Kernel: Linux 3.10.0-327.el7.x86_64
    Architecture: x86-64

  修改主机名的命令一般格式如下
  # hostnamectl [--static|--transient|--pretty] set-hostname <new_hostname>

  [root@centos7 ~]# hostnamectl --transient
  centos7.example.com

  # hostnamectl --transient set-hostname centos7-a //修改瞬态主机名
  # hostnamectl       //查看修改后的瞬态主机名
   Static hostname: centos7.example.com
  Transient hostname: centos7-a

  # hostnamectl --static  //查看修改前的静态主机名
  centos7.example.com
  # hostnamectl --static set-hostname centos7-a.example.com //修改静态主机名
  # hostnamectl --static        //查看修改后的瞬态主机名
  centos7-a.example.com

  Hostnamectl设置主机名后,会立即刷新内核主机名,以及更新/etc/hostname文件,
    但当前Bash提示符需重新登陆shell

  [root@centos7 ~]# bash     //重新开启shell
  #

  /etc/hosts文件中主机名不会自动更新,应手动更新主机名与IP地址的映射关系

   vim /etc/hosts
  127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4
  ::1  localhost localhost.localdomain localhost6 localhost6.localdomain6
  192.168.81.142 centos7-a.example.com centos7-a //添加此行,其中192.168.81.142是本机IP地址
  :wq    //保存退出

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • 详细介绍linux动态网络和静态网络和克隆后的网络配置

    建议设置网卡NAT模式 动态网络配置: 1.一定要开启本地DHCP服务 2.在虚拟网络编辑器中选择NAT模式选中DHCP项如下图 3.ifup eth0 静态网络配置 : 注释:ifcfg-eth0部分参数说明 DEVICE=eth0#描述网卡对应的设备别名 HWADDR=00:0C:29:42:DD:51#对应的网卡物理地址 TYPE=Ethernet#网络类型(通常是Ethemet) UUID=514fda06-1fc6-4d19-8a74-74030ed83956 ONBOOT=yes#系

  • Linux网络编程之socket文件传输示例

    本文所述示例程序是基于Linux平台的socket网络编程,实现文件传输功能.该示例是基于TCP流协议实现的socket网络文件传输程序.采用C语言编写.最终能够实现传输任何格式文件的文件传输程序. 具体实现代码如下: Server端代码如下: /************************************************************************* > File Name: Server.c > Author: SongLee ***********

  • Linux网络编程之UDP Socket程序示例

    在网络传输协议中,TCP协议提供的是一种可靠的,复杂的,面向连接的数据流(SOCK_STREAM)传输服务,它通过三段式握手过程建立连接.TCP有一种"重传确认"机制,即接收端收到数据后要发出一个肯定确认的信号,发送端如果收到接收端肯定确认的信号,就会继续发送其他的数据,如果没有,它就会重新发送. 相对而言,UDP协议则是一种无连接的,不可靠的数据报(SOCK_DGRAM)传输服务.使用UDP套接口不用建立连接,服务端在调用socket()生成一个套接字并调用bind()绑定端口后就可

  • Linux基本网络配置方法介绍

    1.常用配置网络指令 (1) 配置eth0的IP地址, 同时激活该设备 sudo ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up (2) 添加默认网关 sudo route add default gw 192.168.1.1 (3) 配置DNS $ sudo vi /etc/resolv.conf nameserver 202.96.134.133 nameserver 202.96.128.68 nameserver 202.96.12

  • Linux 下sudo网络权限详解

    Linux 下sudo网络权限详解 对于设置了网络代理的服务器,在当前用户下执行网络访问没有问题,但通过sudo执行命令时,就会出现"无网络连接"的错误. 背景 对于设置了网络代理的服务器,在当前用户下执行网络访问没有问题,但通过sudo执行命令时,就会出现"无网络连接"的错误. 普通权限下,wget成功. # wget https://github.com --2016-12-08 09:00:43-- https://github.com/ Connecting

  • linux系统之间通过nfs网络文件系统挂载设置方法

    NFS简介 NFS是Network File System的简写,即网络文件系统. 网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与他人共享目录和文件.通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件. NFS好处 以下是NFS最显而易见的好处: 1.本地工作站使用更少的磁盘空间,因为通常的数据可以存放在一台机器上而且可以通过网络访问到. 2.用户不必在每个网络上机器里头都有一个home目录.Home目录 可以被放在NFS服务

  • Linux 检测服务器是否连接着网络

    Linux 检测服务器是否连接着网络 摘要: 每隔5分钟检测一次服务器是否连接着网络,如果三次检测都没有网络?则自动关机! 主要使用场景: 由于自己有一台服务器放在偏远的老家,有可能会遇到停电导致断网的问题,并且停电后UPS使用时间也有限制, 因此设计此脚本为了解决停电的时候服务器突然断电引起的各种问题,当停电后网络也就不通了,此时需要自动关闭服务器. 当然,来电后需要手动启动服务器!!! #!/bin/bash # 检测服务器是否连接着网络,如果网络不通 则 3次后 关机 # crontab

  • Linux网络编程之基于UDP实现可靠的文件传输示例

    了解网络传输协议的人都知道,采用TCP实现文件传输很简单.相对于TCP,由于UDP是面向无连接.不可靠的传输协议,所以我们需要考虑丢包和后发先至(包的顺序)的问题,所以我们想要实现UDP传输文件,则需要解决这两个问题.方法就是给数据包编号,按照包的顺序接收并存储,接收端接收到数据包后发送确认信息给发送端,发送端接收确认数据以后再继续发送下一个包,如果接收端收到的数据包的编号不是期望的编号,则要求发送端重新发送. 下面展示的是基于linux下C语言实现的一个示例程序,该程序定义一个包的结构体,其中

  • Linux下用netstat查看网络状态、端口状态

    在linux一般使用netstat 来查看系统端口使用情况步. netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表.实际的网络连接以及每一个网络接口设备的 netstat命令的功能是显示网络连接.路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作. 该命令的一般格式为: netstat [选项] 命令中各选项的含义如下: -a 显示所有socket,包括正在监听的. -c 每隔1秒就重新显示一遍,直到用户中断它. -i 显示所有网络接口的信息,格式同"i

  • 详解Linux 主机网络接入配置

    详解Linux 主机网络接入配置 前言: 网络配置是我们在安装好操作系统之后,需要解决的第一步.现时代没有接入网络的主机已然等同于一堆废铁.在网络配置的过程中,通常我们需要配置本机IP地址,缺省网关,DNS,主机名等等.本文主要描述在Linux环境下,主要以传统命令行方式讲解如何将主机接入网络.对于网路配置的新命令如ip,nmcli等等在以后的文章中描述. 一.网络配置概述 主机接入互联网前提:遵循TCP/IP协议栈 配置主机接入TCP/IP网络需要配置的内容:   IP/Netmask   路

  • 详解Linux环境变量配置全攻略

    在自定义安装软件的时候,经常需要配置环境变量,下面列举出各种对环境变量的配置方法. 下面所有例子的环境说明如下: 系统:Ubuntu 14.0 用户名:uusama 需要配置MySQL环境变量路径:/home/uusama/mysql/bin Linux读取环境变量 读取环境变量的方法: export命令显示当前系统定义的所有环境变量 echo $PATH命令输出当前的PATH环境变量的值 这两个命令执行的效果如下 uusama@ubuntu:~$ export declare -x HOME=

  • 详解Linux下的sudo及其配置文件/etc/sudoers的详细配置

    详解Linux下的sudo及其配置文件/etc/sudoers的详细配置 1.sudo介绍 sudo是linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户执行一些或者全部的root命令,如halt,reboot,su等等.这样不仅减少了root用户的登陆 和管理时间,同样也提高了安全性.Sudo不是对shell的一个代替,它是面向每个命令的. 它的特性主要有这样几点: § sudo能够限制用户只在某台主机上运行某些命令. § sudo提供了丰富的日志,详细地记录了每个用

  • 详解Linux使用shell+expect远程登录主机

    详解Linux使用shell+expect远程登录主机 最近使用Ubuntu系统想远程登录自己的vps主机,但是感觉自带的远程登录软件不太好使.于是乎想着怎么使用shell脚本来登录,于是Google之后整理了一下,记录一下,方便以后用到. 1.准备工作:安装expect for Ubuntu sudo apt-get update sudo apt-get install expect for Centos yum install expect 2.新建脚本粘贴以下内容 #!/usr/bin/

  • 详解linux SSH登录流程

    本文给大家详细介绍了ssh 密钥登录远程服务器流程和注意事项,以下是详细内容: 密钥登录比密码登录安全,主要是因为他使用了非对称加密,登录过程中需要用到密钥对.整个登录流程如下: 远程服务器持有公钥,当有用户进行登录,服务器就会随机生成一串字符串,然后发送给正在进行登录的用户. 用户收到远程服务器发来的字符串,使用与远程服务器公钥配对的私钥对字符串进行加密,再发送给远程服务器. 服务器使用公钥对用户发来的加密字符串进行解密,得到的解密字符串如果与第一步中发送给客户端的随机字符串一样,那么判断为登

  • 详解Linux使用ss命令结合zabbix对socket做监控

    前言 这里我们使用zabbix对其进行监控,使用的是ss命令,不使用netstat命令,因为ss的速度快很多,不信的话可以去测一下哈,一台机器的socket越多,对比越明显.而且ss命令能显示更多的内容,其实我对这两个命令不是特别的熟悉,通过man ss可以看到: 一.ss命令 ss命令用于显示socket状态. 他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix domain socket

  • 详解Linux系统配置nginx的负载均衡

    详解Linux系统配置nginx的负载均衡 负载均衡的几种方式: 1.轮询:默认按照时间顺序对所有服务器一个一个的访问,如果有服务器宕机,会自动剔除: 2.weight:服务器的方位几率和weight成正比,这个可以在服务器配置不均的时候进行配置: 3.ip_hash:对每个请求的ip进行hash计算,并按照一定的规则分配对应的服务器(可解决session共享): 4.fair:按照每台服务器的响应时间(rt)来分配请求,rt知道优先分配: 5.url_hash:按照访问url的hash值来分配

  • 详解Linux中查看jdk安装目录、Linux卸载jdk、rpm命令、rm命令参数

    一.查看jdk安装目录 [root@node001 ~]# whereis java java: /usr/bin/java /usr/local/java #java执行路径 [root@node001 ~]# which java /usr/bin/java #查看JDK安装路径 [root@node001 ~]# echo $JAVA_HOME /usr/local/java/jdk1.7.0_80 [root@node001 ~]# echo $PATH /usr/local/sbin:

  • 详解linux驱动编写(入门)

    在我离职之前,工作内容几乎不涉及到驱动方面的知识.我所要做的内容就是把客户对设备的请求拆分成一个一个的接口,调用驱动的设置进行配置就可以了.当然,至于驱动下面是怎么实现那就要根据具体情况而定了.比如说,有的驱动是芯片厂商直接写好的,假设芯片厂商提供了对应平台的sdk函数,那么驱动的工作就是对这些sdk函数进行封装就可以了,另外一种就是自己编写具体平台的驱动接口了.比如说,现在你需要编写串口.i2c.i2s.FLASH.网卡.LCD.触摸屏.USB驱动了.这个时候,你手里面除了一堆芯片手册,啥也没

  • 详解linux正则表达式(基础正则表达式+扩展正则表达式)

    正则表达式应用非常广泛,例如:php,Python,java等,但在linux中最常用的正则表达式的命令就是grep(egrep),sed,awk等,换句话 说linux三剑客要想能工作的更高效,就一定离不开正则表达式的配合. 1.什么是正则表达式? 简单的说,正则表达式就是为处理大量的字符串而定义的一套规则和方法.通过定义的这些特殊符号的辅助,系统管理员就可以快速过滤.替换或者输出需要的字符串.linux正则表达式一般以行为单位处理的. 2.为什么要学正则表达式 在企业工作中,我们每天做的li

随机推荐