OpenvSwitch常用命令及Ubuntu、Kali网卡配置

设置网卡为eth*及Fix网卡IP的几种方式

设置网卡名称为eth*格式

1.编辑/etc/default/grub并加入“net.ifnames=0 biosdevname=0 ”到GRUB_CMDLINE_LINUX变量中。

vi /etc/default/grub
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"

2.sudo update-grub,使配置生效。
3.reboot。

Fix网卡IP为静态IP netplan工具

1.ifconfig查看当前网卡的名称,即eth0.
2.route -n 获取当前系统的默认路由地址。
3.sudo vim /etc/netplan/00-installer-config.yaml

缩进对齐,并且每个冒号后都要跟一个空格。

network:
  version: 2
  ethernets: 
    eth0: 
      addresses: [192.168.0.1/24]
      gateway4: 192.168.0.1
      routes: 
        - to: default
          via: 192.168.0.1
      dhcp4: false
      nameservers: 
        addresses: [192.168.0.1]

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
4.sudo netplan generate
5.sudo netplan apply

linux network/interfaces设置网卡IP

在Linux中,可以通过编辑/etc/network/interfaces文件来配置网卡的IP地址。

  1. 打开终端并使用root或sudo权限登录系统。
  2. 输入命令 vi /etc/network/interfaces 进行编辑该文件。如果没有安装vim编辑器)。
  3. 根据需要修改相应的接口配置信息。每个接口都会被定义为类似于下面这样的段落:
auto eth0   # 自动启用eth0接口
iface eth0 inet static    # 静态分配IP地址
address <ip_address>      # IP地址
netmask <subnet_mask>     # 子网掩码
gateway <default_gateway> # 默认网关
dns-nameservers <DNS_server_list> # DNS服务器列表
  1. 保存更改后,按下Esc键然后输入:wq!保存并退出编辑模式。
  2. 重新加载网络配置,使之生效。运行命令 /etc/init.d/networking restart 或者 service networking restart
  3. 确认网络连接已经成功建立,可以使用 ping 命令测试与目标主机的连通性。

注:

  • <ip_address>、<subnet_mask>、<default_gateway>和<DNS_server_list>等参数需要根据实际情况进行替换。
  • 若要将网卡设置为动态获取IP地址,只需将上述示例中的static改为dhcp即可。

Ubuntu /etc/dhcpcd.conf配置网卡

interface eth0 #网卡名称
static ip_address=192.168.1.211/24  # IP和子网掩码
static routers=192.168.1.1 # 网关
# 配置DNS地址为114.114.114.114和192.168.1.1
static domain_name_servers=114.114.114.114 192.168.1.1 # DNS地址

在重启网卡的时候这两个DNS会自动写入到/etc/resolv.conf 这个DNS配置文件。

SSH连接Linux报错No compatible hostkey

错误如下:

No compatible hostkey. The server supports these methods:rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256,ssh-ed25519

高版本的openssh需要增加对旧版本SSH连接客户端密钥交换算法的支持。
在/etc/ssh/sshd_config文件中追加以下内容即可:

HostKeyAlgorithms=+ssh-rsa,ssh-dss
KexAlgorithms=+diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1

修改完成重启ssh服务即可。

systemctl restart sshd
systemctl status sshd

Kali修改Command终端字体大小

在kali界面打开文件/home/kali/.config/qterminal.org/,第42行和43行改成如下内容即可:

fontFamily=Hack
fontSize=18

curl命令,常用于访问接口进行测试

参考文章:https://www.cnblogs.com/poloyy/p/14854183.html

last命令

语法格式

last [options] [<username>...] [<tty>...]

参数说明

参数含义
-显示多少行
-a, --hostlastlast在最后一列中显示主机名
-d, --dns将IP号转换回主机名
-f, --file<读取特定文件而不是 /var/log/wtmp
-F, --fulltimes打印完整的登录和注销时间和日期
-i, --ip以数字和点表示法显示ip编号
-n, --limit限制要显示的行数
-R, --nohostname不显示hostname字段
-s, --since显示指定时间以来的行
-t, --until显示指定时间之前的行
-p, --present显示在指定时间出现的人员
-w, --fullnames显示完整的用户名和域名
-x, --system显示系统关闭条目和运行级别更改
-h, --help帮助
-V, --version版本
  • 第一列:用户名
  • 第二列:终端位置,pts/0 (伪终端) 意味着从 SSH 或 telnet 的远程连接的用,.tty (teletypewriter) 意味着直接连接到计算机或者本地连接的用户
  • 第三列:登录的 IP 或终端名,用户通过本地终端连接则显示空,除了重启活动,内核版本会显示在状态中
  • 第四列:登录开始时间
  • 第五列:结束时间
  • 第六列:持续时间,still logged in 表示仍然在线

OpenVSwitch

基本命令

一个桥(Bridge)就是一个交换机,当我们创建了一个交换机(Bridge)以后,此时网络功能不受影响,但是会产生一个虚拟网卡,名字就是网桥的名称(如s1),之所以会产生一个虚拟网卡,是为了实现接下来的网桥(交换机)功能。有了这个交换机以后,还需要为这个交换机增加端口 (port),一个端口,就是一个物理网卡,当网卡加入到这个交换机之后,其工作方式就和普通交换机的一个端口的工作方式类似了。
创建桥的时候会创建一个和桥名字一样的接口,并自动作为该桥的一个端口,那么这个虚拟接口的作用,一方面是可以作为交换机的管理端口,另一方面也是基于这个虚拟接口,实现了桥的功能。

  • 显示当前OpenVSwitch版本
sudo ovs-vsctl --version

--------------------------------
ovs-vsctl (Open vSwitch) 2.13.8
DB Schema 8.2.0
  • 显示OpenvSwitch绑定的Bridge及Port信息
sudo ovs-vsctl show

-----------------------------------------
    Bridge s1
        Port e1c457258d664_l
            tag: 1103
            Interface e1c457258d664_l
        Port s1
            Interface s1
                type: internal
        Port "9328575ac9c04_l"
            tag: 1101
            Interface "9328575ac9c04_l"
        Port eth0
            Interface eth0
        Port a0d220c4f74b4_l
            Interface a0d220c4f74b4_l
        Port a9916bc3479e4_l
            Interface a9916bc3479e4_l
        Port "6dead0b7771d4_l"
            tag: 1104
            Interface "6dead0b7771d4_l"
        Port "53541368f22d4_l"
            tag: 1102
            Interface "53541368f22d4_l"
        Port patch-to-iptv
            Interface patch-to-iptv
                type: patch
                options: {peer=patch-to-s1}
    Bridge s5
        Port s5
            Interface s5
                type: internal
  • 显示当前设备全部的Bridge名称
sudo ovs-vsctl list-br

------------------------------------
s1
s2
s3
  • 显示Bridge的配置信息
sudo ovs-vsctl list bridge s1

--------------------------------------
_uuid               : 039c047f-9325-4f30-a237-d2889d248bcf
auto_attach         : []
controller          : []
datapath_id         : "00008cec4bfcbbeb"
datapath_type       : ""
datapath_version    : "<unknown>"
external_ids        : {}
fail_mode           : []
flood_vlans         : []
flow_tables         : {}
ipfix               : []
  • 新增Bridge
sudo ovs-vsctl add-br s9  # 新增bridge s9
sudo ovs-vsctl list-br

-----------------------------------
s1
s2
s3
s9
  • 删除Bridge
sudo ovs-vsctl del-br s9   # 删除bridge s9
sudo ovs-vsctl list-br
s1
s2
s3
  • 绑定物理网卡到Bridge
sudo ovs-vsctl add-port s1 eth0    # 把eth0绑定到name为s1的Bridge上
  • 删除Bridge中的port
sudo ovs-vsctl del-port eth0
  • 显示Bridge绑定的port
sudo ovs-vsctl list-ports s1

-------------------------------------
53541368f22d4_l         # 该网卡名称为docker容器的网卡名称
6dead0b7771d4_l
9328575ac9c04_l
a0d220c4f74b4_l
a9916bc3479e4_l
e1c457258d664_l
eth0
  • 显示当前port的配置信息
sudo ovs-vsctl list port eth0

--------------------------------------------------
_uuid               : 59639e56-a5a0-4547-aa7d-735a0bf04efb
bond_active_slave   : []
bond_downdelay      : 0
bond_fake_iface     : false
bond_mode           : []
bond_updelay        : 0
cvlans              : []
external_ids        : {}
fake_bridge         : false
interfaces          : [dd5e69ca-32cf-420c-baf4-f2f1d3b098e7]
lacp                : []
mac                 : []
name                : eth0
other_config        : {}
protected           : false
qos                 : []
rstp_statistics     : {}
rstp_status         : {}
statistics          : {}
status              : {}
tag                 : []
trunks              : []
vlan_mode           : trunk    # 该接口VLAN为Trunk模式

--------------------------------------
sudo ovs-vsctl list port e1c457258d664_l
_uuid               : 290b1091-d7cb-41aa-92ff-17e719b04da8
bond_active_slave   : []
bond_downdelay      : 0
bond_fake_iface     : false
bond_mode           : []
bond_updelay        : 0
cvlans              : []
external_ids        : {}
fake_bridge         : false
interfaces          : [d8f42b07-ff85-4e68-adb6-44b68cda2ef4]
lacp                : []
mac                 : []
name                : e1c457258d664_l
other_config        : {}
protected           : false
qos                 : []
rstp_statistics     : {}
rstp_status         : {}
statistics          : {}
status              : {}
tag                 : 1103    # 该接口的vlan id为1103
trunks              : []
vlan_mode           : []
  • 显示当前物理网卡绑定的Bridge
sudo ovs-vsctl iface-to-br eth0

---------------------------------
s1
  • 显示Port接口详细信息
sudo ovs-vsctl list interface eth0
  • 绑定docker容器的指定接口到Bridge
sudo ovs-docker add-port s1 eth0 sr_dhcp_server_docker_container_name_or_id 
--ipaddress=192.168.1.10/24 --gateway=192.168.1.1 --macaddress= --mtu=
  • 删除docker容器在OVS上绑定的Port
sudo ovs-docker del-port s1 eth0 sr_dhcp_server_container_name_or_id
  • 删除docker容器绑定的指定Bridge上的全部Port
sudo ovs-docker del-ports s1 sr_dhcp_server_container_name_or_id
  • 对Docker绑定的Bridge上的Port设置VLAN ID
sudo ovs-docker set-vlan s1 eth0 sr_dhcp_server_container_name_or_id 100  # 设置vlan id为100
  • 设置某接口的VLAN为Trunk模式
ovs-vsctl set <选项> <参数>


# 设置eth0的VLAN模式为Trunk模式
sudo ovs-vsctl set Port eth0 vlan_mode=trunk

ovs-vsctl set命令用于设置Open vSwitch(OVS)的配置参数。基本用法如下:

ovs-vsctl set <选项> <参数>

其中,<选项>表示要设置的参数类型,<参数>表示具体的参数值。以下是一些常用的选项和参数:

  1. 设置端口状态:
ovs-vsctl set Port <端口名> <选项> <>

例如,将端口eth0设置为启用状态:

ovs-vsctl set Port eth0 enabled true
  1. 设置网络策略:
ovs-vsctl set NetworkPolicy <策略名> <选项> <>

例如,创建一个名为policy1的网络策略,允许从eth0到eth1的流量通过:

ovs-vsctl set NetworkPolicy policy1 in_port=eth0,out_port=eth1 action=output:1
  1. 设置流表规则:
ovs-vsctl set Flow <表名> <选项> <>

例如,在名为table0的流表中添加一条规则,匹配所有数据包并输出到eth1:

ovs-vsctl set Flow table0 "priority=10,actions=output:eth1"
  1. 设置其他配置参数:
ovs-vsctl set <选项> <>

例如,设置OVS数据库的日志级别为–log-file=/var/log/openvswitch/ovsdb.log --log-level=info:

ovs-vsctl set -- log-file=/var/log/openvswitch/ovsdb.log --log-level=info

Docker+OpenvSwitch

https://www.linuxprobe.com/docker-openvswitch-vxlan.html

1.安装docker并获取ubuntu镜像

sudo apt-get install docket.io
sudo docker pull ubuntu

2.安装openvswitch和ovs的docker辅助脚本

sudo apt-get install openvswitch-switc
# OpenvSwitch 项目提供的支持 Docker 容器的辅助脚本 ovs-docker
wget https://github.com/openvswitch/ovs/raw/master/utilities/ovs-docker
chmod a+x ovs-docker

报错

ovs-vsctl: unix:/var/run/openvswitch/db.sock: database connection failed (No such file or directory)

killall ovsdb-server
service openvswitch-switch force-reload-kmod
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值