linux IP命令总结

ip tunnel 隧道技术 配置两台主机的 lo地址,用来测试用,如果不做gre的话,互相是ping不同对方的回环地址的。 注意环境是 主机1的ip:192.168.1.1 lo地址:1.1.1.1 主机2的ip:192.168.1.2 lo地址: 2.2.2.1 root@liuhao1:~# ip addr add 1.1.1.1/24 dev lo root@liuhao2:~# ip addr add 2.2.2.1/24 dev lo 配置gre # 开启两个主机的 ip_forward ,可以写在sy 阅读详情

root@ubuntu:~# ip help
Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }
       ip [ -force ] -batch filename
where  OBJECT := { link | address | addrlabel | route | rule | neigh | ntable |
                   tunnel | tuntap | maddress | mroute | mrule | monitor | xfrm |
                   netns | l2tp | fou | macsec | tcp_metrics | token | netconf | ila |
                   vrf | sr }
       OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |
                    -h[uman-readable] | -iec |
                    -f[amily] { inet | inet6 | ipx | dnet | mpls | bridge | link } |
                    -4 | -6 | -I | -D | -B | -0 |
                    -l[oops] { maximum-addr-flush-attempts } | -br[ief] |
                    -o[neline] | -t[imestamp] | -ts[hort] | -b[atch] [filename] |
                    -rc[vbuf] [size] | -n[etns] name | -a[ll] |?-c[olor]}

用到的比较多的主要就是ip link | ip addr | ip route 其他的用到再更新

1、ip link :主要用于修改网络设备的配置信息,包括修改MAC地址,名称

root@ubuntu:~# ip link help
Usage: ip link add [link DEV] [ name ] NAME
                   [ txqueuelen PACKETS ]
                   [ address LLADDR ]
                   [ broadcast LLADDR ]
                   [ mtu MTU ] [index IDX ]
                   [ numtxqueues QUEUE_COUNT ]
                   [ numrxqueues QUEUE_COUNT ]
                   type TYPE [ ARGS ]

       ip link delete { DEVICE | dev DEVICE | group DEVGROUP } type TYPE [ ARGS ]

       ip link set { DEVICE | dev DEVICE | group DEVGROUP }
                          [ { up | down } ]
                          [ type TYPE ARGS ]
                          [ arp { on | off } ]
                          [ dynamic { on | off } ]
                          [ multicast { on | off } ]
                          [ allmulticast { on | off } ]
                          [ promisc { on | off } ]
                          [ trailers { on | off } ]
                          [ carrier { on | off } ]
                          [ txqueuelen PACKETS ]
                          [ name NEWNAME ]
                          [ address LLADDR ]
                          [ broadcast LLADDR ]
                          [ mtu MTU ]
                          [ netns { PID | NAME } ]
                          [ link-netnsid ID ]
                          [ alias NAME ]
                          [ vf NUM [ mac LLADDR ]
                                   [ vlan VLANID [ qos VLAN-QOS ] [ proto VLAN-PROTO ] ]
                                   [ rate TXRATE ]
                                   [ max_tx_rate TXRATE ]
                                   [ min_tx_rate TXRATE ]
                                   [ spoofchk { on | off} ]
                                   [ query_rss { on | off} ]
                                   [ state { auto | enable | disable} ] ]
                                   [ trust { on | off} ] ]
                                   [ node_guid { eui64 } ]
                                   [ port_guid { eui64 } ]
                          [ xdp { off |
                                  object FILE [ section NAME ] [ verbose ] |
                                  pinned FILE } ]
                          [ master DEVICE ][ vrf NAME ]
                          [ nomaster ]
                          [ addrgenmode { eui64 | none | stable_secret | random } ]
                          [ protodown { on | off } ]

       ip link show [ DEVICE | group GROUP ] [up] [master DEV] [vrf NAME] [type TYPE]

       ip link xstats type TYPE [ ARGS ]

       ip link afstats [ dev DEVICE ]

       ip link help [ TYPE ]

TYPE := { vlan | veth | vcan | vxcan | dummy | ifb | macvlan | macvtap |
          bridge | bond | team | ipoib | ip6tnl | ipip | sit | vxlan |
          gre | gretap | erspan | ip6gre | ip6gretap | ip6erspan |
          vti | nlmon | team_slave | bond_slave | ipvlan | geneve |
          bridge_slave | vrf | macsec }


# ip link show : 查看端口的具体信息

# ip link add eth1 name Test type bridge :创建一个名字是Test的类型是bridge的eth1端口

 

2、ip route

root@ubuntu:~# ip route help
Usage: ip route { list | flush } SELECTOR
       ip route save SELECTOR
       ip route restore
       ip route showdump
       ip route get [ ROUTE_GET_FLAGS ] ADDRESS
                            [ from ADDRESS iif STRING ]
                            [ oif STRING ] [ tos TOS ]
                            [ mark NUMBER ] [ vrf NAME ]
                            [ uid NUMBER ]
       ip route { add | del | change | append | replace } ROUTE
SELECTOR := [ root PREFIX ] [ match PREFIX ] [ exact PREFIX ]
            [ table TABLE_ID ] [ vrf NAME ] [ proto RTPROTO ]
            [ type TYPE ] [ scope SCOPE ]
ROUTE := NODE_SPEC [ INFO_SPEC ]
NODE_SPEC := [ TYPE ] PREFIX [ tos TOS ]
             [ table TABLE_ID ] [ proto RTPROTO ]
             [ scope SCOPE ] [ metric METRIC ]
             [ ttl-propagate { enabled | disabled } ]
INFO_SPEC := NH OPTIONS FLAGS [ nexthop NH ]...
NH := [ encap ENCAPTYPE ENCAPHDR ] [ via [ FAMILY ] ADDRESS ]
            [ dev STRING ] [ weight NUMBER ] NHFLAGS
FAMILY := [ inet | inet6 | ipx | dnet | mpls | bridge | link ]
OPTIONS := FLAGS [ mtu NUMBER ] [ advmss NUMBER ] [ as [ to ] ADDRESS ]
           [ rtt TIME ] [ rttvar TIME ] [ reordering NUMBER ]
           [ window NUMBER ] [ cwnd NUMBER ] [ initcwnd NUMBER ]
           [ ssthresh NUMBER ] [ realms REALM ] [ src ADDRESS ]
           [ rto_min TIME ] [ hoplimit NUMBER ] [ initrwnd NUMBER ]
           [ features FEATURES ] [ quickack BOOL ] [ congctl NAME ]
           [ pref PREF ] [ expires TIME ] [ fastopen_no_cookie BOOL ]
TYPE := { unicast | local | broadcast | multicast | throw |
          unreachable | prohibit | blackhole | nat }
TABLE_ID := [ local | main | default | all | NUMBER ]
SCOPE := [ host | link | global | NUMBER ]
NHFLAGS := [ onlink | pervasive ]
RTPROTO := [ kernel | boot | static | NUMBER ]
PREF := [ low | medium | high ]
TIME := NUMBER[s|ms]
BOOL := [1|0]
FEATURES := ecn
ENCAPTYPE := [ mpls | ip | ip6 | seg6 | seg6local ]
ENCAPHDR := [ MPLSLABEL | SEG6HDR ]
SEG6HDR := [ mode SEGMODE ] segs ADDR1,ADDRi,ADDRn [hmac HMACKEYID] [cleanup]
SEGMODE := [ encap | inline ]
ROUTE_GET_FLAGS := [ fibmatch ]

2、ip address

root@ubuntu:~# ip address help
Usage: ip address {add|change|replace} IFADDR dev IFNAME [ LIFETIME ]
                                                      [ CONFFLAG-LIST ]
       ip address del IFADDR dev IFNAME [mngtmpaddr]
       ip address {save|flush} [ dev IFNAME ] [ scope SCOPE-ID ]
                            [ to PREFIX ] [ FLAG-LIST ] [ label LABEL ] [up]
       ip address [ show [ dev IFNAME ] [ scope SCOPE-ID ] [ master DEVICE ]
                         [ type TYPE ] [ to PREFIX ] [ FLAG-LIST ]
                         [ label LABEL ] [up] [ vrf NAME ] ]
       ip address {showdump|restore}
IFADDR := PREFIX | ADDR peer PREFIX
          [ broadcast ADDR ] [ anycast ADDR ]
          [ label IFNAME ] [ scope SCOPE-ID ]
SCOPE-ID := [ host | link | global | NUMBER ]
FLAG-LIST := [ FLAG-LIST ] FLAG
FLAG  := [ permanent | dynamic | secondary | primary |
           [-]tentative | [-]deprecated | [-]dadfailed | temporary |
           CONFFLAG-LIST ]
CONFFLAG-LIST := [ CONFFLAG-LIST ] CONFFLAG
CONFFLAG  := [ home | nodad | mngtmpaddr | noprefixroute | autojoin ]
LIFETIME := [ valid_lft LFT ] [ preferred_lft LFT ]
LFT := forever | SECONDS
TYPE := { vlan | veth | vcan | vxcan | dummy | ifb | macvlan | macvtap |
          bridge | bond | ipoib | ip6tnl | ipip | sit | vxlan | lowpan |
          gre | gretap | erspan | ip6gre | ip6gretap | ip6erspan | vti |
          nlmon | can | bond_slave | ipvlan | geneve | bridge_slave |
          hsr | macsec

 

4、ip netns

虚拟化网络都是基于netns实现
ip-netns - process network namespace management  #管理网络名称空间工具

网络命名空间在逻辑上是网络堆栈的另一个副本,具有自己的路由,防火墙规则和网络设备。 默认情况下,进程从其父级继承其网络命名空间。最初,所有进程共享相同的默认网络名称空间 来自init进程。
SYNOPSIS         top        #用法
       ip [ OPTIONS ] netns  { COMMAND | help }

       ip netns [ list ]    #列出所有名称空间
  
       ip netns add NETNSNAME       #创建一个新的名称空间

       ip netns attach NETNSNAME PID       

       ip [-all] netns del [ NETNSNAME ]     #伤处一个名称空间

       ip netns set NETNSNAME NETNSID      

       ip netns identify [ PID ]

       ip netns pids NETNSNAME

       ip [-all] netns exec [ NETNSNAME ] command...      #在网络名称空间执行指定命令
 
       ip netns monitor

       ip netns list-id

 

 ip [-all] netns delete [ NAME ] - delete the name of a network namespace(s)

  

[root@localhost netreport]# ip netns add testspace   #添加一个名称空间
[root@localhost netreport]# ip netns list            #列出
testspace

[root@localhost netreport]# ip netns del testspace    #删除

[root@localhost netreport]# ip netns add testspace

[root@localhost netreport]# ip netns exec testspace ifconfig -a    #执行命令
lo: flags=8<LOOPBACK>  mtu 65536
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@localhost netreport]# 

  

 

ip-link: network device configuration

#ip link 网络设备管理工具,用于配置虚拟网卡
[root@localhost netreport]# ip link help      
Usage: ip link add [link DEV] [ name ] NAME
                   [ txqueuelen PACKETS ]
                   [ address LLADDR ]
                   [ broadcast LLADDR ]
                   [ mtu MTU ] [index IDX ]
                   [ numtxqueues QUEUE_COUNT ]
                   [ numrxqueues QUEUE_COUNT ]
                   type TYPE [ ARGS ]

       ip link delete { DEVICE | dev DEVICE | group DEVGROUP } type TYPE [ ARGS ]

       ip link set { DEVICE | dev DEVICE | group DEVGROUP }
	                  [ { up | down } ]
	                  [ type TYPE ARGS ]
	                  [ arp { on | off } ]
	                  [ dynamic { on | off } ]
	                  [ multicast { on | off } ]
	                  [ allmulticast { on | off } ]
	                  [ promisc { on | off } ]
	                  [ trailers { on | off } ]
	                  [ carrier { on | off } ]
	                  [ txqueuelen PACKETS ]
	                  [ name NEWNAME ]
	                  [ address LLADDR ]
	                  [ broadcast LLADDR ]
	                  [ mtu MTU ]
	                  [ netns { PID | NAME } ]
	                  [ link-netnsid ID ]
			  [ alias NAME ]
	                  [ vf NUM [ mac LLADDR ]
				   [ vlan VLANID [ qos VLAN-QOS ] [ proto VLAN-PROTO ] ]
				   [ rate TXRATE ]
				   [ max_tx_rate TXRATE ]
				   [ min_tx_rate TXRATE ]
				   [ spoofchk { on | off} ]
				   [ query_rss { on | off} ]
				   [ state { auto | enable | disable} ] ]
				   [ trust { on | off} ] ]
				   [ node_guid { eui64 } ]
				   [ port_guid { eui64 } ]
			  [ xdp { off |
				  object FILE [ section NAME ] [ verbose ] |
				  pinned FILE } ]
			  [ master DEVICE ][ vrf NAME ]
			  [ nomaster ]
			  [ addrgenmode { eui64 | none | stable_secret | random } ]
	                  [ protodown { on | off } ]

       ip link show [ DEVICE | group GROUP ] [up] [master DEV] [vrf NAME] [type TYPE]

       ip link xstats type TYPE [ ARGS ]

       ip link afstats [ dev DEVICE ]

       ip link help [ TYPE ]

TYPE := { vlan | veth | vcan | dummy | ifb | macvlan | macvtap |
          bridge | bond | team | ipoib | ip6tnl | ipip | sit | vxlan |
          gre | gretap | ip6gre | ip6gretap | vti | nlmon | team_slave |
          bond_slave | ipvlan | geneve | bridge_slave | vrf | macsec }
[root@localhost netreport]#   

  

 常用命令

ip link add - 添加虚拟链接
ip link delete - 删除虚拟链接
ip link set - 更改设备属性
ip link show - 显示设备属性
ip link xstats - 显示扩展统计信息
ip link afstats - 显示特定于地址的系列统计信息
ip link help - 显示帮助

显示设备属性

ip link show - display device attributes

  dev NAME:specifies the network device to show. (default) 如果不指定设备,则显示所有设备信息
  up:only display running interfaces. 只显示启动的接口

 

添加虚拟设备

ip link add - add virtual link

link DEVICE:specifies the physical device to act operate on. 指定在哪个物理设备上操作
NAME:specifies the name of the new virtual device. 指定新虚拟设备的名称
TYPE:specifies the type of the new device. 指定新设备的类型
Link types:
  vlan - 802.1q tagged virtual LAN interface
  veth - Virtual ethernet interface 虚拟网络接口(一对)
  vcan - Virtual Local CAN interface
  dummy - Dummy network interface
  ifb - Intermediate Functional Block device
  macvlan - virtual interface base on link layer address (MAC)
  can - Controller Area Network interface
  bridge - Ethernet Bridge device 网桥设备

  

 

删除虚拟设备

ip link delete - delete virtual link

  DEVICE:specifies the virtual  device to act operate on.
  TYPE:specifies the type of the device.
  dev DEVICE:specifies the physical device to act operate on.

  

设置设备属性

ip link set - change device attributes

  dev DEVICE:specifies network device to operate on.
  up and down:change the state of the device to UP or DOWN. 启动或关闭网卡
  multicast on or multicast off:change the MULTICAST flag on the device. 启用或禁用组播
  name NAME:change the name of the device. 修改网卡名称。需要先donw掉网卡,不然会提示busy。
    This operation is not recommended if the device is running or has some addresses already configured.
  alias NAME:give the device a symbolic name for easy reference. 为网卡设置别名
  mtu NUMBER:change the MTU of the device. 设置MTU大小,默认为1500
  netns NETNSNAME:move the device to the network namespace associated with name NETNSNAME. 将接口移动到指定的网络名称空间

  

veth - Virtual ethernet interface #虚拟以太网卡

#veth设备是成对出现的,一端连接的是内核协议栈,一端彼此相连。一个设备收到协议栈的数据,会将数据发送另一个设备上去。大概结构如下:

  

+----------------------------------------------------------------+
|                                                                |
|       +------------------------------------------------+       |
|       |             Newwork Protocol Stack             |       |
|       +------------------------------------------------+       |
|              ↑               ↑               ↑                 |
|..............|...............|...............|.................|
|              ↓               ↓               ↓                 |
|        +----------+    +-----------+   +-----------+           |
|        |   eth0   |    |   veth0   |   |   veth1   |           |
|        +----------+    +-----------+   +-----------+           |
|192.168.100.100  ↑               ↑               ↑                 |
|              |               +---------------+                 |
|              |          10.1.1.1/24       10.1.1.2/24               |
+--------------|-------------------------------------------------+
               ↓
         Physical Network

  

示例

创建一对虚拟网卡,新建的网卡默认都是关闭的,名称空间里的回环网卡lo默认也是关闭的。
[root@localhost netreport]# ip link add name veth1 type veth peer name veth2
[root@localhost netreport]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:8b:7c:a1 brd ff:ff:ff:ff:ff:ff
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default 
    link/ether 02:42:3d:8c:f3:de brd ff:ff:ff:ff:ff:ff
7: vetha2d7cb7@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP mode DEFAULT group default 
    link/ether 3a:54:20:3d:ff:16 brd ff:ff:ff:ff:ff:ff link-netnsid 0
8: veth2@veth1: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 8a:ed:62:73:ec:f6 brd ff:ff:ff:ff:ff:ff
9: veth1@veth2: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether da:6c:01:ef:3b:6a brd ff:ff:ff:ff:ff:ff
[root@localhost netreport]# 

 

#一块网卡只能属于一个名称空间, 将veth2 网卡配置为testspace 名称空间
[root@localhost netreport]# ip link set dev veth2 netns testspace
[root@localhost netreport]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:8b:7c:a1 brd ff:ff:ff:ff:ff:ff
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default 
    link/ether 02:42:3d:8c:f3:de brd ff:ff:ff:ff:ff:ff
7: vetha2d7cb7@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP mode DEFAULT group default 
    link/ether 3a:54:20:3d:ff:16 brd ff:ff:ff:ff:ff:ff link-netnsid 0
9: veth1@if8: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether da:6c:01:ef:3b:6a brd ff:ff:ff:ff:ff:ff link-netnsid 1
[root@localhost netreport]# 

 

 让两块在不同名称空间网卡通信

[root@localhost netreport]# ip netns list
testspace (id: 1)
[root@localhost netreport]# ip netns exec testspace ip link set dev veth2 name veth0    #可以修改dev name
[root@localhost netreport]# ip netns exec testspace ifconfig        
[root@localhost netreport]# ip netns exec testspace ifconfig -a                #显示网卡
lo: flags=8<LOOPBACK>  mtu 65536
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

veth0: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        ether 8a:ed:62:73:ec:f6  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@localhost netreport]# ip netns exec testspace ifconfig veth0 10.1.1.2/24
[root@localhost netreport]# ip netns exec testspace ifconfig veth0 10.1.1.2/24 up     #配置名称空间网卡地址,并启动
[root@localhost netreport]# ip netns exec testspace ifconfig -a
lo: flags=8<LOOPBACK>  mtu 65536
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

veth0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 10.1.1.2  netmask 255.255.255.0  broadcast 10.1.1.255
        ether 8a:ed:62:73:ec:f6  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@localhost netreport]# 
[root@localhost netreport]# ifconfig veth1 10.1.1.1/24
[root@localhost netreport]# ifconfig veth1 10.1.1.1/24 up                #配置本地虚拟网卡地址并启动
[root@localhost netreport]# ping 10.1.1.2
PING 10.1.1.2 (10.1.1.2) 56(84) bytes of data.
64 bytes from 10.1.1.2: icmp_seq=1 ttl=64 time=0.079 ms
64 bytes from 10.1.1.2: icmp_seq=2 ttl=64 time=0.089 ms
64 bytes from 10.1.1.2: icmp_seq=3 ttl=64 time=0.067 ms
^C
--- 10.1.1.2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.067/0.078/0.089/0.011 ms
[root@localhost netreport]# 

  

 

外部访问容器

容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P 或 -p 参数来指定端口映射。

当使用 -P 标记时,Docker 会随机映射一个 49000~49900 的端口到内部容器开放的网络端口。

 

[root@localhost ~]# docker run -dit -P nginx   #-P 生成随机端口映射
ce812985c0066f2ed13f31b39e1ddd91324b3b4562e92a4ec1f7542d6e995afc
[root@localhost ~]# docker container ls -a
CONTAINER ID        IMAGE                              COMMAND                  CREATED             STATUS              PORTS                   NAMES
ce812985c006        nginx                              "nginx -g 'daemon of…"   3 seconds ago       Up 3 seconds        0.0.0.0:32768->80/tcp   gifted_williamson
1303d8ae1869        dockerpracticecn/docker_practice   "nginx -g 'daemon of…"   22 hours ago        Up 22 hours         0.0.0.0:8080->80/tcp    eager_vaughan
[root@localhost ~]# 

  

[root@localhost ~]# docker run -dit -p 8000:80  nginx    #宿主机所有地址的8000 端口,指定端口
02dda7bad87e9801e638786a46c5685f8f8b91f41b0052198a5ad0daaeed1686
[root@localhost ~]# docker container ls -a
CONTAINER ID        IMAGE                              COMMAND                  CREATED              STATUS              PORTS                   NAMES
02dda7bad87e        nginx                              "nginx -g 'daemon of…"   3 seconds ago        Up 1 second         0.0.0.0:8000->80/tcp    tender_hugle
ce812985c006        nginx                              "nginx -g 'daemon of…"   About a minute ago   Up About a minute   0.0.0.0:32768->80/tcp   gifted_williamson
1303d8ae1869        dockerpracticecn/docker_practice   "nginx -g 'daemon of…"   22 hours ago         Up 22 hours         0.0.0.0:8080->80/tcp    eager_vaughan
[root@localhost ~]# 

  

[root@localhost ~]# docker run -dit -p 192.168.100.100:9000:80  nginx   #限定地址端口
f22564d9af806afe99fda755c885fb3ecc414fcb4ae1847234981c882eb98ede
[root@localhost ~]# docker container ls -a
CONTAINER ID        IMAGE                              COMMAND                  CREATED              STATUS              PORTS                          NAMES
f22564d9af80        nginx                              "nginx -g 'daemon of…"   3 seconds ago        Up 2 seconds        192.168.100.100:9000->80/tcp   wonderful_jepsen
02dda7bad87e        nginx                              "nginx -g 'daemon of…"   About a minute ago   Up About a minute   0.0.0.0:8000->80/tcp           tender_hugle
ce812985c006        nginx                              "nginx -g 'daemon of…"   2 minutes ago        Up 2 minutes        0.0.0.0:32768->80/tcp          gifted_williamson
1303d8ae1869        dockerpracticecn/docker_practice   "nginx -g 'daemon of…"   22 hours ago         Up 22 hours         0.0.0.0:8080->80/tcp           eager_vaughan
[root@localhost ~]# 

  

[root@localhost ~]# docker port f225        #查看容器映射端口
80/tcp -> 192.168.100.100:9000
[root@localhost ~]# 

  

共享宿主机网络名称空间

[root@localhost ~]# docker run --name b4 -it --network host --rm busybox    #网络模型host 
/ # 
/ # ifocnfig
sh: ifocnfig: not found
/ # ifconfig
br-89e62c51620f Link encap:Ethernet  HWaddr 02:42:CF:83:F2:C1  
          inet addr:172.18.0.1  Bcast:172.18.255.255  Mask:255.255.0.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

docker0   Link encap:Ethernet  HWaddr 02:42:3D:8C:F3:DE  
          inet addr:172.17.0.1  Bcast:172.17.255.255  Mask:255.255.0.0
          inet6 addr: fe80::42:3dff:fe8c:f3de/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:303 errors:0 dropped:0 overruns:0 frame:0
          TX packets:251 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:728619 (711.5 KiB)  TX bytes:28556 (27.8 KiB)

ens33     Link encap:Ethernet  HWaddr 00:0C:29:8B:7C:A1  
          inet addr:192.168.100.100  Bcast:192.168.100.255  Mask:255.255.255.0
          inet6 addr: fe80::d634:8c5a:a11c:8da8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9777 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9749 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:955036 (932.6 KiB)  TX bytes:1692136 (1.6 MiB)

  

 

容器互联

[root@localhost ~]# docker network create -d bridge my-net             #新建一个网络名称空间
7563ccc4b9ce8ab73fa9ea49a7cc0ed900e5bd9cc8e65393baaee0764c61bee8
[root@localhost ~]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
d4846dd9d420        bridge              bridge              local
89e62c51620f        help                bridge              local
16d30c89207b        host                host                local
7563ccc4b9ce        my-net              bridge              local
c8c1dd52cd81        none                null                local

 

[root@localhost ~]# ifconfig     
br-7563ccc4b9ce: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500     #新创建的网桥
        inet 172.19.0.1  netmask 255.255.0.0  broadcast 172.19.255.255
        inet6 fe80::42:edff:fec6:5157  prefixlen 64  scopeid 0x20<link>
        ether 02:42:ed:c6:51:57  txqueuelen 0  (Ethernet)
        RX packets 4  bytes 280 (280.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 12  bytes 936 (936.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

br-89e62c51620f: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.18.0.1  netmask 255.255.0.0  broadcast 172.18.255.255
        ether 02:42:cf:83:f2:c1  txqueuelen 0  (Ethernet)
        RX packets 4  bytes 280 (280.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 20  bytes 1592 (1.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        inet6 fe80::42:3dff:fe8c:f3de  prefixlen 64  scopeid 0x20<link>
        ether 02:42:3d:8c:f3:de  txqueuelen 0  (Ethernet)
        RX packets 303  bytes 728619 (711.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 251  bytes 28556 (27.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

  

 运行一个容器并连接到新建的 my-net 网络

 

[root@localhost ~]# docker run -it --rm --name busybox1 --network my-net busybox sh    #启动一个容器 并加入指定网络
/ # 

 

[root@localhost ~]# docker run -it --rm --name busybox2 --network my-net busybox sh        #测试统一名称空间的容器通信
/ # ping busybox1 
PING busybox1 (172.19.0.2): 56 data bytes
64 bytes from 172.19.0.2: seq=0 ttl=64 time=0.116 ms
64 bytes from 172.19.0.2: seq=1 ttl=64 time=0.091 ms
^C
--- busybox1 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.091/0.103/0.116 ms
/ # 
【Linux】常见的用于定位网络问题的命令(概述) 阅读详情

相关推荐

从碰撞电离到雪崩击穿:Sentaurus仿真中的模型选择与验证艺术

本文深入探讨了Sentaurus TCAD中雪崩击穿模型的选取与验证方法,特别关注平行平面结的仿真实践。通过对比Chynoweth、van Overstraeten等主流模型的适用场景与精度差异,结合具体案例展示了从几何建模到边界条件设定的完整验证流程,并针对非理想因素提供了有效的补偿技术,助力工程师提升器件仿真的准确性与可靠性。

weixin_29074295的博客 592

Docker 第五章 容器网络

ip netns 虚拟化网络都是基于netns实现 ip-netns - process network namespace management #管理网络名称空间工具网络命名空间在逻辑上是网络堆栈的另一个副本,具有自己的路由,防火墙规则和网络设备。默认情况下,进程从其父级继承其网络命名空间。最初,所有进程共享相同的默认网络名称空间来自init进程。 SYNOPSIS ...

weixin_30950607的博客 309

Tube-based MPC完全指南:RCI集合构造与Matlab实现

模型预测控制(MPC)在实际工程中常因模型失配和外部扰动导致硬约束被突破,而鲁棒控制中的Tube-based MPC通过将单条预测轨迹扩展为“管道”集合,为不确定性提供了严格的安全边界。其核心在于利用鲁棒控制不变集(RCI)离线构造安全域,再结合在线标称MPC与反馈校正实现约束的硬保证。针对非线性系统,利普希茨条件为等效扰动的放大和RCI的构造提供了理论基础,使得算法既能保留非线性描述,又不牺牲在线计算效率。该方法适用于带扰动和参数漂移的机械系统、过程控制及嵌入式控制场景。本文以摩擦力非线性系统为例,从RC

weixin_32642109的博客 216

cisco Linux SRv6 实战踩坑记录

环境: 版本不同:原文ubuntu16,本次使用18 APT Source不同:原文使用1807,2101 安装vpp2101 虚拟机设置-添加-网络适配器,添加4块网卡 一、配置vpp 机器连接的 PCI 网络设备的 ID,预留ens33 root@wl-virtual-machine:/home/wl# lshw -class network -businfo Bus info Device Class Description ================.

weixin_43941593的博客 2563

汇编语言与接口技术(第4版)清华大学出版社 第2章 80*86微处理器 课后题答案

汇编语言与接口技术(第4版)清华大学出版社 第2章 80*86微处理器 课后题答案

m0_51658788的博客 3606

DP链路训练从HPD触发到通道对齐:原理与调试实战

高速数字接口的稳定工作依赖物理层信号的精确协商,链路训练正是DisplayPort接口中确保源端与接收端在速率、摆幅和时序上达成一致的关键机制。HPD作为链路状态变化的触发信号,与通道对齐一同构成了训练流程的首尾环节。理解从时钟恢复到均衡再到多通道对齐的完整过程,有助于快速定位显示异常问题。在工程实践中,借助DPCD寄存器交互和AUX通道日志,可以系统性地排查训练失败原因。围绕链路训练全流程进行剖析,重点探讨HPD触发机制、训练图案选择、寄存器配置以及链路降级策略,为显示方案开发与调试提供工程参考。

weixin_30110543的博客 234

基于Openwrt(Linux)系统实现SRv6数据包的传输——实验一

基于Openwrt(Linux)系统实现SRv6数据包的传输前言实验准备硬件准备软件准备刷写Openwrt固件安装软件包 前言 之所以想写这篇博客,是因为之前一直在网上找有关于Openwrt和SRv6的相关材料,结果一直找不到合适的。就在绝望的时候,我在Openwrt官网上看到版本v21.02.0-rc1的简介,居然支持了SRv6数据包的封装与发送,并提供了一句实例配置命令,不过也没有更具体的阐述了。经过几天不断的实验和踩坑,终于能够实现在两台运行Openwrt系统的路由器上通过SRv6来实现数据包的封装、

weixin_46466722的博客 4120

【100%通过率】华为OD机试真题2026双机位C卷 C语言 实现【加密算法】

【100%通过率】华为OD机试真题2026双机位C卷 Python&JS 实现【加密算法】有一种特殊的加密算法,明文为一段数字串,经过密码本查找转换,生成另一段密文数字串。规则如下

MISAYAONE的博客 648

【Linux】ip命令详解

IP命令是一个非常强大的命令行工具,用于管理与配置网络接口和路由表。vrf }对象释义link网络设备address设备的协议地址(IP或IPv6)addrlabel用于协议地址选择的标签配置route路由表项rule路由策略数据库中的规则neighbour管理ARP或NDISC缓存项ntable管理邻居cache的操作tunnelIP隧道tuntap管理TUN/TAP设备maddress多播地址mroute组播路由缓存项mrule。

康师傅没有眼泪 3万+

25、BDS-3卫星信号性能与PPP-B2b增强消息完整性分析

本文对BDS-3卫星信号性能及PPP-B2b增强消息的完整性进行了系统分析。评估了MEO、IGSO和GEO卫星的轨道与时钟精度,得出BDS-3总体SISRE为0.25 m,系统完整性可覆盖99.999%的误差。分析表明SIS中断主要由时钟调整和轨道机动引起,个别卫星存在因境外监测受限导致的非计划中断。通过自研解码软件对PPP-B2b增强消息进行采集与解析,实验结果显示BDS-3和GPS的平均历元完整性率均高于98.55%,其中卫星掩码和时钟校正消息的完整性率超过99.8%。研究还发现IGSO卫星相比MEO卫

quiet的专栏 145

6、直流微电网中恒功率负载(CPL)的稳定性分析与控制策略

本文探讨了直流微电网中恒功率负载(CPL)带来的稳定性问题,并深入分析了其影响机制及相应的缓解策略。文章首先通过小信号模型和非线性分析揭示了CPL对系统稳定性的影响,接着讨论了被动稳定方法的优缺点,最后重点介绍了基于时间的方法和几何控制器等控制策略。这些方法各有优劣,在实际应用中需结合具体需求选择合适方案,以实现直流微电网的稳定运行。

star的博客 227

Linux ip 命令

Linux ip命令是比ifconfig更强大的网络配置工具,支持显示和设置网络设备、地址、路由等。主要对象包括link(设备)、address(IP地址)、route(路由)等,常用选项有-V(版本)、-s(详细信息)、-4/-6(协议类型)等。典型用法包括查看接口信息(ip link)、设置IP地址(ip addr add)、管理路由表(ip route)等。该命令支持显示详细统计信息(-s选项),并能查看邻居表(ip neigh)。相比ifconfig,ip命令提供了更全面的网络管理功能,是现代Lin

nmxiaocui的博客 981

基于Simulink进行双向DC-DC变换器的仿真建模

特点双向性:可以将能量从一个电压等级转换到另一个,且方向可逆。效率高:通过合理的控制策略减少能量损失。应用广泛:如电池管理系统、混合动力汽车等。挑战拓扑选择:根据应用场景选择合适的电路结构(如buck-boost、full-bridge等)。控制策略:确保高效稳定运行的同时,适应负载变化。热管理:有效散热以保持长期可靠性。首先明确要模拟的任务内容。设计一个能够支持双向能量传输的变换器。根据输入输出电压要求确定合适的变换器拓扑。实现有效的控制策略来维持输出电压稳定。

xiaoheshang_123的博客 367

linux ip命令_如何在Linux上使用ip命令

linux ip命令Fatmawati Achmad Zaenuri/ShutterstockFatmawati Achmad Zaenuri / Shutterstock You can configure IP addresses, network interfaces, and routing rules on the fly with the Linux ip command. We’ll...

culunxun2863的博客 1697

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

linux系统查看ip命令

​首选或ip a​ - 功能最全,最现代,几乎所有发行版默认安装,无额外依赖。​次选/传统​ - 熟悉度高,但可能需要手动安装软件包,正在被ip取代。​快速脚本获取​ - 超级简单获取所有非环回 IPv4 地址。​NetworkManager 用户​ - 集权管理工具的详细信息。

zwh1zwh的博客 9357

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Linux之ip命令详解

1. ip命令是Linux下管理网络接口的主要工具之一,可以用于设置IP地址、路由表、网络接口等。2. ip命令的常见操作包括查看网络接口信息、设置IP地址、设置网络接口等。3. 查看网络接口信息的操作:- ip addr:显示所有网络接口的详细信息,包括接口名称、MAC地址、IPv4地址、IPv6地址等。- ip link:显示所有网络接口的名称和状态信息。4. 设置IP地址的操作:- ip addr add IP地址/掩码 dev 网络接口名:给指定网络接口添加IP地址。

huaz_md的博客 4296

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Linux ip命令

设置与网络设备(device)有关的相关设定,包括 MTU(Maximum Transmission Unit,最大传输单元) 以及该网络设备的 MAC 等,当然也可以启动(up)或关闭(down)某个网络设备。左边解释上面对应大写单出内容,小写字母为参数,[a A] 小写参数,大写值。添加路由到路由表 id 为 100 的路由表中。添加默认路由到指定路由表。删除指定路由表的默认路由。以下大写部分为输入参数。添加到指定网络的路由。添加到指定主机的路由。

博客 703

Linux下的ip命令

linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者。使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务。ifconfig是net-tools中已被废弃使用的一个命令,许多年前就已经没有维护了。iproute2套件里提供了许多增强功能的命令,ip命令即是其中之一。 要安装ip,请点击这里下载iproute2套装工具 。不过,大多数Linux发行版已

hans_1990的专栏 3395

linux系统中如何查ip,在Linux系统中查看ip的命令是什么

在Linux系统中查看ip的命令是什么发布时间:2020-04-30 10:32:07来源:亿速云阅读:432作者:小新在排除网络问题,设置新连接或配置防火墙时,了解设备的 IP 地址非常重要。下面我们就来看看在Linux系统中查看ip的命令是什么吧!Linux查看ip的方法在 Linux 中,用于显示和配置网络接口的标准命令是 ip。要显示所有网络接口和相关 IP 地址的列表,请键入以下命令:i...

weixin_35044481的博客 1万+

linux ip命令

转自:linux命令总结之ip命令 - 琴酒网络 - 博客园Linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者。使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务。ifconfig是net-tools中已被废弃使用的一个命https://www.cnblogs.com/ginvip/p/6367803.html Linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者。使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务。ifconfig

扎实基础方能走远 644

linux 重启ip命令,ip命令详解

Linux中的ip命令功能强大,可以完成接口配置、路由管理等任务。格式:ip [ OPTIONS ] OBJECT { COMMAND | help }下面使用ip命令来完成一些常用的操作:1、查看接口状态ip link show [设备名]2、启动和关闭接口ip link set [设备名] {up|donw}3、显示接口IP地址ip addr show4、配置接口IP地址ip addr add...

weixin_33794626的博客 1779

Linux命令怎么查找IP,在Linux中,如何查找您的IP地址

很多时候,您会感到需要知道设备的IP地址。 Internet协议地址或IP地址是识别您的设备并启用网络通信所需的一组数字,因为通过网络连接的所有设备仅通过其IP地址相互了解。此外,IP地址还指定设备的位置。因此,有时需要您知道所使用的任何设备的IP地址是什么。现在,如何找到该IP地址才是真正的问题。在下面的文章中,我们将告诉您在Linux环境(例如Ubuntu 18.04)中工作时可以找到设备IP...

weixin_33154775的博客 1万+
上一篇: Linux MPLS功能详解
下一篇: tcpdump高级过滤
废言Pro
博客等级 码龄16年 1093粉丝 142原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值