设置网卡为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地址。
- 打开终端并使用root或sudo权限登录系统。
- 输入命令 vi /etc/network/interfaces 进行编辑该文件。如果没有安装vim编辑器)。
- 根据需要修改相应的接口配置信息。每个接口都会被定义为类似于下面这样的段落:
auto eth0 # 自动启用eth0接口
iface eth0 inet static # 静态分配IP地址
address <ip_address> # IP地址
netmask <subnet_mask> # 子网掩码
gateway <default_gateway> # 默认网关
dns-nameservers <DNS_server_list> # DNS服务器列表
- 保存更改后,按下Esc键然后输入:wq!保存并退出编辑模式。
- 重新加载网络配置,使之生效。运行命令
/etc/init.d/networking restart
或者service networking restart
。 - 确认网络连接已经成功建立,可以使用 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, --hostlast | last在最后一列中显示主机名 |
-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 <选项> <参数>
其中,<选项>表示要设置的参数类型,<参数>表示具体的参数值。以下是一些常用的选项和参数:
- 设置端口状态:
ovs-vsctl set Port <端口名> <选项> <值>
例如,将端口eth0设置为启用状态:
ovs-vsctl set Port eth0 enabled true
- 设置网络策略:
ovs-vsctl set NetworkPolicy <策略名> <选项> <值>
例如,创建一个名为policy1的网络策略,允许从eth0到eth1的流量通过:
ovs-vsctl set NetworkPolicy policy1 in_port=eth0,out_port=eth1 action=output:1
- 设置流表规则:
ovs-vsctl set Flow <表名> <选项> <值>
例如,在名为table0的流表中添加一条规则,匹配所有数据包并输出到eth1:
ovs-vsctl set Flow table0 "priority=10,actions=output:eth1"
- 设置其他配置参数:
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