贡献者: addis
sudo ifconfig
显示网卡信息,以及 ip 地址(inet addr)
ip -4 addr show scope global
也可以。ifconfig
现在已经有点过时了(但仍然很多人和教材在用),可以用 ip
代替。
ip route show | grep default
找默认网卡,默认网卡几乎肯定是公网网卡。
ifconfig 网卡名 up
启动网卡,ifconfig 网卡名 down
关闭网卡,可以用这两个命令重启网卡
ifoncig
用于查看网络相关信息:其中 Link encap:Ethernet
表示在使用 Ethernet,HWaddr
是硬件地址,即 MAC 地址,inet addr
本机的 IP 地址,Bcast
broadcast 地址,Mask
掩码,UP
表示 Ethernet 的 kernel module 被加载,BROADCAST
支持 broadcasting,从 DHCP 获取 IP 的必要条件,RUNNING
准备好传输数据,mtu
(Maximum Transmission Unit),就是 packet 的最大尺寸
netplan
是 ubuntu 18.04 的默认管理网络设置的程序,比如设置 hdcp,静态 ip,掩码,网关等,设置完成以后用 sudo netplan apply
可以生效。但有时候还需要重启网卡才能成功。
ip -4 addr show scope global
返回的 valid_lft
和 preferred_lft
不是 forever
,那(理论上)这个 ip 就可能会变化
sudo hpclient
显示 ip 地址
sudo /etc/init.d/networking restart
重启网络服务
wget http://...
文件会下载到当前文件夹
ping
可以用来检查是否有网络连接,比如 ping google.com
也可以用来查看某个域名的 ip 地址,也可以直接使用 ip 地址如 ping 8.8.8.8
(8.8.8.8 是谷歌的主要 DNS 服务器)
ping 域名
和 host 域名
都可以检查域名的 ip
telnet IP 端口号
whois 66.220.156.68 | grep CIDR
输出如 CIDR: 66.220.144.0/20
traceroute 域名或者ip
可以查看从当前机器出发到某个机器所经过的网关的 ip(有些会隐藏)。例如局域网里面的某台机器 traceroute 到外网的某个网址,那么第一条显示的是当前局域网的网关(用于该局域网的网卡)的 ip,如果该网关仍然没有处于公网,那么第二条会显示第一条中网关所在的另一个局域网的网关的 ip……直到公网 ip,然后各种互联网上的公网 ip,最终达到网址的服务器的 ip。注意每条中只会显示进入某个机器所用网卡的 ip,不会显示出去时所用网卡的 ip。
cat /sys/class/net/enp5s0/speed
可以查看以太网的连接速度(即是否是 Gigabit 在 GUI 的网络设置里面也可以看到)
iperf3
可以测试网络中两个主机之间的网速,参考这个教程。不过貌似比较麻烦,倒不如用 sftp,一般不需要安装额外东西。
ip a
(或者 ip addr
)输出的的一个例子如下:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state
UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc
fq_codel state UP group default qlen 1000
link/ether d8:bb:c1:17:da:ca brd ff:ff:ff:ff:ff:ff
inet 192.168.137.1/24 brd 192.168.137.255 scope global
noprefixroute enp3s0
valid_lft forever preferred_lft forever
inet6 fe80::dabb:c1ff:fe17:daca/64 scope link
valid_lft forever preferred_lft forever
3: wlo1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc
noqueue state UP group default qlen 1000
link/ether 14:18:c3:7f:91:85 brd ff:ff:ff:ff:ff:ff
altname wlp0s20f3
inet 10.150.61.141/17 brd 10.150.127.255 scope global
dynamic noprefixroute wlo1
valid_lft 66898sec preferred_lft 66898sec
inet6 fe80::e7b9:9ec8:8534:38d2/64 scope link noprefixroute
valid_lft forever preferred_lft forever
enp3s0
,en
表示 ethernet,p3
,s0
表示某些编号。
LOWER_UP
indicates that an Ethernet cable was plugged in and that the device is connected to the network
LOOPBACK
表示 loop back(例如 localhost 127.0.0.1)
qlen
:default transmit queue length。
inet
ipv4 地址,inet6
ipv6 地址
brd
广播(broadcast)地址
mtu
maximum transmission unit(ethernet 都是 1500 字节)
valid_lft
:valid life time
preferred_lft
:preferred life time
qdisc
:queuing discipline。也就是排队的算法,noqueque
是说没有队列。
state
是网卡的状态,它的值可以是 UP, DOWN, UNKNOWN
,如果开启以后没有连接,会显示 UNKNOWN
。
iptables
是一个命令行防火墙,它不是一个 service 而是个命令,所以不能 turn on/off。
sudo ufw status
,sudo ufw disable
,sudo ufw enable
(其实我需要的只是 disable)
FILTER
,NAT
,MANGLE
,每种又有不同的 chain,例如 INPUT
,OUTPUT
,FORWARD
, PREROUTING
,POSTROUTING
等。
iptables -L -n -v
-t
,如 iptables -t nat -L -v -n
iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP
iptables -A INPUT -p tcp -s xxx.xxx.xxx.xxx -j DROP
iptables -D INPUT -s xxx.xxx.xxx.xxx -j DROP
iptables -A OUTPUT -p tcp --dport xxx -j DROP
iptables -A INPUT -p tcp --dport xxx -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports 22,80,443 -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --sports 22,80,443 -j ACCEPT
host facebook.com
,whois 66.220.156.68 | grep CIDR
,例如得到 66.220.144.0/20
,那么 iptables -A OUTPUT -p tcp -d 66.220.144.0/20 -j DROP
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 -j REDIRECT --to-port 2525
就是网卡 eth0, 从端口 25 到端口 2525
iptables -A INPUT -m mac --mac-source 00:00:00:00:00:00 -j DROP
NAT
的原理大概就是把不同内网的 ip 地址 + 端口(socket)映射到某个(例如学校的)公网 ip 地址和不同的端口,并在链接建立以后把后者的端口回传给前者的端口
iperf
可以用于测试网速
/etc/hostname
修改 hostname,重启即可
NAT network
满足要求,但不能从 host 连接虚拟机,而 bridged networking
可以
Not attached
模式,guest 会有一张网卡,但是没有连接 cable
NAT (Network Address Translation)
模式,新建虚拟机默认使用这个,guest 可以连接 internet,但是外部不能访问 guest(例如 guest 上的 web server),包括 host
NAT network
模式:需要的就是这个,目前用得是这个 类似于用 router 将虚拟机连起来,并连互联网,host 连不连暂时无所谓。在选择这个之前需要在 File->Preference 菜单中的 Network 中新建一个网卡(直接按+按钮即可,无需设置),然后在对每个虚拟机的 NAT network
设置里面选这个网卡。
netplan
(ubuntu 18) 或者 ifupdown
(old ubuntu),可以参考这里
cd /etc/netplan/
,里面可以手动指定当前机器的 ip 地址
sudo cp 50-cloud-init.yaml 50-cloud-init.yaml.backup
enp0s3
是 ifconfig 的连接名)
network:
version: 2
ethernets:
enp0s3:
dhcp4: false
addresses: [10.0.2.4/24]
renderer: NetworkManager
sudo netplan try
,然后 ifconfig
看一下 ip 是否变为指定 ip。如果有什么问题,两分钟后会自动恢复原来的设置。(据说恢复时有一个 bug,并不能恢复,需要重启才可以)
sudo netplan apply
使配置生效
apt update
可不可以连接外网
sudo ifconfig enp0s3 down; sudo ifconfig enp0s3 up
重启网卡即可(如果通过 ssh 链接,一定不能拆开使用,否则会断开链接)。
sudo arp-scan -l --interface=网卡名
其中 网卡名
就是 ifconfig
里面显示的。
renderer
):systemd-networkd
和 NetworkManager
。如果不指定,默认是前者,此时 Ubuntu 桌面右上角的网络设置中将会显示 unmanaged
。
/etc/network/interfaces
,如果要切换回后者,见这个教程。
/run/netplan
,/etc/netplan
,/lib/netplan
,一般来说默认文件是 /etc/netplan/01-network-manager-all.yaml
,内容是
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
其中 renderer
的另一个选项是 networkd
(如果不指定就默认这个)。桌面版还是建议用 NetworkManager,因为 GUI 网络设置就是用的这个,可以查看各种信息。
gateway4 xxx.xxx.xxx.xxx
已经过时了,应该用 routes: [{to: default, via: xxx.xxx.xxx.xxx}]
。
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
enp5s0:
dhcp4: false
addresses: [192.168.137.183/24]
routes:
- to: default
via: 192.168.137.214
nameservers:
addresses: [10.130.30.52, 10.130.30.53]
nameservers
的 ip 可以设置为常用的 8.8.8.8
等,但笔者的校园网禁止访问公共 DNS,所以笔者在 LAN 的网关电脑上查到了两个校园网提供的 DNS 地址并填入。
ip a
(即 ip address
)
sudo ip address add 192.168.137.10/255.255.255.0 dev enp3s0
(en
表示 ethernet,p3
表示 bus number,s10
表示 slot number)
ip link set dev eth0 up
,ip link set dev eth0 down
ip route show
或者 route -n
可以查看路由表。前者可以看到 DHCP 服务器的位置
ip route add 192.168.1.0/255.255.255.0 via 192.168.1.1
ip route add default via 192.168.1.1 dev eth0
arp -a
查看 ARP(由 ip 获取 mac 地址的协议)缓存
netstat -napt
可以查看 tcp 连接状态
/etc/ufw/sysctl.conf
中注释掉 net.ipv4.ip_forward=1
.
/etc/default/ufw
中设置 DEFAULT_FORWARD_POLICY="ACCEPT"
/etc/ufw/before.rules
中在 filter rules 之前添加如下几行:
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o 无线网卡名 -j MASQUERADE
COMMIT
sudo systemctl restart ufw
,sudo ufw enable
 
 
 
 
 
 
 
 
 
 
 
友情链接: 超理论坛 | ©小时科技 保留一切权利