Anda di halaman 1dari 42

Redes no Ubuntu

Salviano A. Leão
March 1, 2018

Contents
1 Rede 3

2 Configuração de Rede 3
2.1 Interfaces Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.1 Identificar interfaces Ethernet . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 O comando ip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3 O comando ip 8
3.1 Comando ip addr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2 O comando ip neigh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2.1 Conceitos de neighboring . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2.2 O que é um neighbor? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2.3 E o comando ip neigh? . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2.4 Nomes lógicos das interfaces Ethernet . . . . . . . . . . . . . . . . . . . . 13
3.2.5 Configurações das interfaces Ethernet . . . . . . . . . . . . . . . . . . . . 13
3.3 Endereçamento IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.4 Arquivo /etc/network/interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.4.1 Configuração de endereço IP temporário . . . . . . . . . . . . . . . . . . 15
3.4.2 Configuração de endereço IP dinâmico (Cliente DHCP) . . . . . . . . . . 16
3.4.3 Configuração de endereço IP estático . . . . . . . . . . . . . . . . . . . . 17
3.4.4 Interface local . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.5 Resolução de nomes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.5.1 Configuração do Cliente DNS . . . . . . . . . . . . . . . . . . . . . . . . 18
3.5.2 Nomes de máquinas estáticos . . . . . . . . . . . . . . . . . . . . . . . . 19
3.5.3 Configuração do Serviço de Sistema de Nomes . . . . . . . . . . . . . . . 19
3.6 Ponte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4 Exemplos do comando nmcli 21

5 Configurando a rede na linha de comando 23


5.1 Configurando a interface de rede usando a linha de comando . . . . . . . . . . . 23
5.2 Encontrando a placa da interface de rede . . . . . . . . . . . . . . . . . . . . . . 23
5.3 Configurando um endereço de IP estático para sua placa de rede . . . . . . . . . 23
5.4 Configurando um segundo endereço de IP ou um endereço de IP virtual . . . . . 24
5.5 Definindo seu Hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.6 Definindo o DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

1
5.7 Configurando o endereço de DHCP para sua placa de rede . . . . . . . . . . . . 27
5.8 Como definir o MTU para uma conecção DHCP . . . . . . . . . . . . . . . . . . 27

6 Obtendo informações do sistema Ubuntu Linux 27


6.1 Determinando o hostname da máquina . . . . . . . . . . . . . . . . . . . . . . . 28
6.2 Determine os números de séries de fabrica dos dispositivo . . . . . . . . . . . . . 28
6.3 Mostra informações sobre o hardware instalado . . . . . . . . . . . . . . . . . . 28
6.4 Determine informações sobre a CPU do sistema . . . . . . . . . . . . . . . . . . 29
6.5 Mostra uma estatística relacionada a CPU (processadores) . . . . . . . . . . . . 30
6.6 Determinando informações sobre a memória (RAM) do sistema . . . . . . . . . 30
6.7 Mostra o espaço usado pelo sistema swap . . . . . . . . . . . . . . . . . . . . . . 30
6.8 Show the system virtual memory statistics . . . . . . . . . . . . . . . . . . . . . 31
6.9 Find the Ubuntu Linux distribution version and related information . . . . . . . 31
6.10 Find the system kernel version number . . . . . . . . . . . . . . . . . . . . . . . 31
6.11 Find the system kernel parameters . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.12 Find the system kernel architecture (32 bit or 64 bit) . . . . . . . . . . . . . . . 31
6.13 Find the system disk information . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.14 List all partitions of /dev/sda disk . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.15 Show block device attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.16 List all block devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.17 Display file system disk space usage . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.18 Estimate file space usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.19 Display mounted file system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.20 Display SCSI devices (or hosts) and their attributes on Linux . . . . . . . . . . 32
6.21 Display I/O statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6.22 Find the system PCI devices information . . . . . . . . . . . . . . . . . . . . . . 33
6.23 Find the system USB devices information . . . . . . . . . . . . . . . . . . . . . . 33
6.24 Find the system Wireless devices information . . . . . . . . . . . . . . . . . . . 33
6.25 Find the system VGA/Graphics devices information . . . . . . . . . . . . . . . . 33
6.26 Find the system NVIDIA Graphics devices information . . . . . . . . . . . . . . 33
6.27 Find the system AMD/ATI Graphics devices information . . . . . . . . . . . . . 34
6.28 Which version of Unity am I running? . . . . . . . . . . . . . . . . . . . . . . . 34
6.29 Find the system audio devices information . . . . . . . . . . . . . . . . . . . . . 34
6.30 Display the system/laptop battery status & thermal temperature . . . . . . . . 34
6.31 Find out how long the system has been running . . . . . . . . . . . . . . . . . . 34
6.32 Find the system load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.33 Show the system reboot and shutdown history . . . . . . . . . . . . . . . . . . . 35
6.34 Show runlevel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
6.35 Display kernel ring buffer (boot time) messages . . . . . . . . . . . . . . . . . . 35
6.36 Display the system drivers (modules) . . . . . . . . . . . . . . . . . . . . . . . . 35
6.37 Find the system IP address and related information . . . . . . . . . . . . . . . . 35
6.37.1 You need to use the ip command: . . . . . . . . . . . . . . . . . . . . . . 35
6.37.2 Only show eth1 interface info . . . . . . . . . . . . . . . . . . . . . . . . 35
6.38 Display the system routing table . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6.39 Display the system ethernet bridge . . . . . . . . . . . . . . . . . . . . . . . . . 36
6.40 Display the system DNS server and related information . . . . . . . . . . . . . . 36
6.41 Display information about the system ports and socket . . . . . . . . . . . . . . 36
6.41.1 Display all listing ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6.41.2 Display all TCP sockets . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

2
6.41.3 Display all UDP sockets . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.41.4 List all open files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.42 Display the list of running services . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.42.1 SYS V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.42.2 UPSTART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.43 Find out if service is enabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.43.1 UPSTART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.43.2 SYS V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.43.3 View installed packages by task . . . . . . . . . . . . . . . . . . . . . . . 37
6.44 View log files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
6.45 Find file by name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
6.46 Find file by given condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
6.47 View user account details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.48 View group account details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.49 View password policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.50 View system usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.51 Trace system call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.52 Trace library call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.53 View process info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
6.54 Change process priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
6.55 View process’s CPU affinity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
6.56 Display the system listing of all package installed . . . . . . . . . . . . . . . . . 40
6.57 Display the system listing of all patches installed . . . . . . . . . . . . . . . . . 40
6.58 Display the list of needed runtime libraries to run file . . . . . . . . . . . . . . . 40
6.59 Find what package a file belongs to . . . . . . . . . . . . . . . . . . . . . . . . . 40
6.60 Create a backup list of all installed software . . . . . . . . . . . . . . . . . . . . 41
6.61 Display the system firewall configuration . . . . . . . . . . . . . . . . . . . . . . 41
6.62 Do not forget to read man pages featured in this post: . . . . . . . . . . . . . . 41

7 Upgrading 41
7.1 Upgrading with do-release-upgrade . . . . . . . . . . . . . . . . . . . . . . . . 41

1 Rede
Redes consistem em dois ou mais dispositivos, tais como computadores, impressoras e equipa-
mentos relacionados, os quais estão conectados por cabeamento físico ou links sem fio com o
propósito de compartilhar e distribuir informação entre os dispositivos conectados.
Aqui serão apresentadas informações gerais e específicas pertinentes à rede, incluindo uma
visão geral sobre conceitos de rede e discussões detalhadas sobre protocolos de rede mais pop-
ulares.

2 Configuração de Rede
O Ubuntu distribui um número de utilidades gráficas para configurar seus equipamentos de rede.
Este documento tem como foco administradores de servidores e focalizará em como administrar
sua rede usando a linha de comando.

3
2.1 Interfaces Ethernet
As interfaces Ethernet são identificadas pelo sistema utilizando a nomenclatura convencional
ethX, onde o X representa um valor numérico. A primeira interface Ethernet geralmente é
identificada como eth0, a segunda como eth1, e assim por diante para as demais.

2.1.1 Identificar interfaces Ethernet


Para identificar todas interfaces Ethernet de forma rápida, você pode utilizar o comando
ifconfig, conforme exibido abaixo:

> ifconfig -a | grep eth0


eth0 Link encap : Ethernet Endere ç o de HW ec : f4 : bb : f9 :86: f9

Outra aplicação que poderá auxiliar a identificação de todas interfaces de rede disponíveis no
seu sistema é o comando lshw. No exemplo abaixo, o lshw exibe uma interface Ethernet com o
nome lógico eth0, juntamente com informações de barramento, driver, e outras funcionalidades
suportadas.

> sudo lshw - class network


ou
> sudo lshw -C network
[ sudo ] password for salviano :
* - network
descri ç ã o : Ethernet interface
produto : RTL8101E / RTL8102E PCI Express Fast Ethernet controller
fabricante : Realtek Semiconductor Co . , Ltd .
ID f í sico : 0
informa ç õ es do barramento : pci@0000 :01:00.0
nome l ó gico : eth0
vers ã o : 07
serial : ec : f4 : bb : f9 :86: f9
tamanho : 100 Mbit / s
capacidade : 100 Mbit / s
largura : 64 bits
clock : 33 MHz
capacidades : pm msi pciexpress msix vpd bus_master cap_list ethernet
physical tp mii 10 bt 10 bt - fd 100 bt 100 bt - fd autonegotiation
configura ç ã o : autonegotiation = on broadcast = yes driver = r8169
driverversion =2.3 LK - NAPI duplex = full firmware = rtl8106e -1 _0 .0.1 06/29/12
latency =0 link = yes multicast = yes port = MII speed =100 Mbit / s
recursos : irq :60 porta de E / S :4000( tamanho =256) mem ó ria : b0b00000 -←-
b0b00fff
mem ó ria : b0800000 - b0803fff
* - network
descri ç ã o : Interface sem fio
produto : QCA9565 / AR9565 Wireless Network Adapter
fabricante : Qualcomm Atheros
ID f í sico : 0
informa ç õ es do barramento : pci@0000 :02:00.0
nome l ó gico : wlan0
vers ã o : 01
serial : c0 :38:96:27:79:31
largura : 64 bits
clock : 33 MHz

4
capacidades : pm msi pciexpress bus_master cap_list rom ethernet ←-
physical
wireless
configura ç ã o : broadcast = yes driver = ath9k driverversion =3.13.0 -58 -←-
generic
firmware = N / A ip =172.16.58.156 latency =0 link = yes multicast = yes wireless =←-
IEEE
802.11 bgn
recursos : irq :19 mem ó ria : b0a00000 - b0a7ffff mem ó ria :9 fb00000 -9 fb0ffff

2.2 O comando ip
O comando ifconfig foi e ainda é, na maioria das distribuições GNU/Linux, a ferramenta
padrão para configurar interfaces de rede. Entretanto, o comando ip é quem realiza todo
trabalho pesado da nova geração de ferramentas de rede. Ele não apenas integra funcionalidades
de várias ferramentas antigas, como também oferece uma sintaxe unificada em todas as funções.
O comando ip é parte do pacote iproute. A semelhança entre as ferramentas deste pacote
permite um gerenciamento eficiente de seu sistema GNU/Linux, pois não apresenta diversas
sintaxes para diversas funções. A seguir apresentamos a sintaxe do comando ip

1) Para obter os endereços de IP de todas as interfaces de rede do sistema

> ip addr show

ou

> ip addr list

da placa eth0

> ip addr show eth0

2) Para mostrar informações das interfaces de rede

> ip link show

3) Para reter uma estatística dos pacotes relacionados com as interfaces de rede conectadas

> ip -s link show

4) No contexto do comando ip, um link é um dispositivo de rede, real ou virtual. Para


especificar detalhes de uma interface específica, segue comando abaixo:

> ip addr show dev wlan0

5) Para designar o endereço IP de 192.168.80.5 para a interface eth0

5
> ip addr add 192.168.80.5 dev eth0

6) Para remover o endereço de IP 192.168.80.5 da interface eth0

> ip addr del 192.168.80.5 dev eth0

7) Para ativar/desativar uma interface de rede

> ip link set eth2 down


> ip addr list eth2
3: eth2 : mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link / ether 00:1 a :73: d1 :67:45 brd ff : ff : ff : ff : ff : ff

> ip link set eth2 up


> ip addr list eth2
3: eth2 : mtu 1500 qdisc pfifo_fast state DORMANT qlen 1000
link / ether 00:1 a :73: d1 :67:45 brd ff : ff : ff : ff : ff : ff
inet6 fe80 ::21 a :73 ff : fed1 :6745/64 scope link tentative
valid_lft forever preferred_lft forever

a mesma tarefa acima é feita da seguinte forma com o comando ifconfig

> ifconfig eth2 down


> ifconfig eth2 up

8) Para mudar as características da interface. Com o comando ip link também podemos


modificar as características e flags da interface, como por exemplo configurar o modo
promiscuo, multicast, arp, dynamic ou allmulti. São utilizadas os valores on|off, como
no exemplo a seguir que é configurada um interface no modo promiscuo

> ip link set dev eth0 promisc on


> ip addr list eth0
2: eth0 : mtu 1500 qdisc pfifo_fast state UP qlen 1000
link / ether 00:1 b :24: d5 :18:99 brd ff : ff : ff : ff : ff : ff
inet 192.168.1.128/24 brd 192.168.1.255 scope global eth0
inet6 fe80 ::21 b :24 ff : fed5 :1899/64 scope link
valid_lft forever preferred_lft forever

> ip link set dev eth0 promisc off


> ip addr list eth0
2: eth0 : mtu 1500 qdisc pfifo_fast state UP qlen 1000
link / ether 00:1 b :24: d5 :18:99 brd ff : ff : ff : ff : ff : ff
inet 192.168.1.128/24 brd 192.168.1.255 scope global eth0
inet6 fe80 ::21 b :24 ff : fed5 :1899/64 scope link
valid_lft forever preferred_lft forever

9) Como configurar um IP para a interface de rede eth2. Com o comando ip addr add
podemos especificar o IP, máscara (também no formato CIDR como vemos a continuação
e o IP do broadcast:

6
> ip addr add 10.0.0.100/24 broadcast 10.0.0.255 dev eth2
> ip addr list eth2
3: eth2 : mtu 1500 qdisc pfifo_fast state DORMANT qlen 1000
link / ether 00:1 a :73: d1 :67:45 brd ff : ff : ff : ff : ff : ff
inet 10.0.0.100/24 brd 10.0.0.255 scope global eth2
inet6 fe80 ::21 a :73 ff : fed1 :6745/64 scope link
valid_lft forever preferred_lft forever

10) Para eliminar o IP:

> ip addr del 10.0.0.100/24 dev eth2

11) Também podemos criar alias para as interfaces:

> ip addr add 10.0.0.101/24 broadcast 10.0.0.255 dev eth2 :1

12) Trocar a MTU da interface

> ip link set dev eth2 mtu 9000

13) Mostrar a tabela de roteamento

> ip route show


default via 192.168.1.1 dev eth0 proto static
169.254.0.0/16 dev eth0 scope link metric 1000
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.128 ←-
metric 1

14) Adicionando uma rota estática, a tabela de roteamento. As vezes estabelecer manualmente
um roteador torna-se necessário, devido ao tráfico que deve passar através do gateway. O
roteamento estático é necessário para direcionar o tráfico de rede pelo melhor caminho.

> ip route add 10.10.20.0/24 via 192.168.50.100 dev eth0

15) Removendo o rotemanto estático

> ip route del 10.10.20.0/24

16) Como adicionar um Gateway padrão

> ip route add default via 192.168.50.100

17) Como remover um Gateway padrão

> ip route del default via 192.168.50.100

7
18) Ver a tabela de ARP Cache

• De todas as interfaces:

> ip neighbor show


192.168.1.1 dev eth0 lladdr 64:68:0 c :6 b :5 f :7 e REACHABLE

• De uma interface específica:

> ip neighbor show dev eth0


192.168.1.1 lladdr 64:68:0 c :6 b :5 f :7 e REACHABLE

3 O comando ip
Há algum tempo atrás comecei a usar o comando ip em vez do ifconfig para configurar
endereços IP no Linux. Depois de algum tempo resolvi ler o man ip e, para minha surpresa, de-
scobri que esse comando pode ser usado para muitas outras coisas. A partir de então abandonei
o ifconfig.
Estamos acostumados a usar os comandos arp, ifconfig e route para configurar ou analisar
os diversos parâmetros de rede no Linux. Essas ferramentas são muito úteis, porém a partir da
versão 2.2 do kernel do Linux, um novo subsistema de rede foi desenvolvido e essas ferramentas,
apesar de ainda funcionarem bem, não conseguem tirar o máximo proveito das funcionalidades
que o novo subsistema nos oferece.
Com o propósito de aproveitar ao máximo esse novo subsistema de rede, uma nova ferra-
menta foi desenvolvida, o comando ip. A principal diferença desse comando é que além de
reunir todas as funções dos comandos arp, ifconfig e route, ele ainda nos oferece muitas
outras.
Veja como são normalmente executados os comandos arp, ifconfig e route:

> arp -n
> ifconfig -a
> route -n

Agora veja o comando ip:

> ip neigh show


> ip addr show
> ip route show

Bem mais intuitivo, não acha? Se ficou curioso em relação às saídas desses comandos,
execute eles aí no seu Linux e veja a diferença.
Nós podemos também simplesmente listar quais interfaces de rede estão presentes no sistema
sem nos preocupar se elas têm ou não um endereço IP associado. Este é um novo conceito trazido
pelo comando ip, ou seja, a separação do protocolo da camada de rede, como por exemplo o
IPv4 e o IPv6, da interface de rede. Exemplo:

> sudo ip link show


1: lo : < LOOPBACK , UP , LOWER_UP > mtu 16436 qdisc noqueue state UNKNOWN

8
link / loopback 0 0:00:00:0 0:00:00 brd 00: 00:00:00 :00:00
2: eth0 : <NO - CARRIER , BROADCAST , MULTICAST , UP > mtu 1500 qdisc pfifo_fast ←-
state
DOWN qlen 1000
link / ether 00:19:5 b :69:5 d : d7 brd ff : ff : ff : ff : ff : ff

Este comando só nos mostra quais interfaces de rede nós temos e não nos mostra informação
de protocolo da camada de rede. Outro conceito que morre com o comando ip é o de interface
virtual, ou melhor, IP Aliasing. Com o comando ip nós podemos atribuir vários endereços
IP a uma mesma interface de rede. Inclusive endereços em uma mesma rede IP. Exemplo:

> sudo ip addr add 192.168.0.1/24 dev eth0


> sudo ip addr add 172.16.22.1/16 dev eth0
> sudo ip addr add 10.0.0.1/8 dev eth0
> sudo ip addr add 10.0.0.2/8 dev eth0 /////

Se fôssemos usar o comando ifconfig, nós teríamos uma interface de rede com endereço
192.168.0.1 e teríamos que criar mais três interfaces virtuais, uma com o endereço 172.16.22.1,
outra com o endereço 10.0.0.1 e por último uma interface com o endereço 10.0.0.2.
Veja como fica configurada uma interface de rede após a execução dos quatro comandos
anteriores:

> sudo ip addr show dev eth0


1: eth0 : mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link / ether 00:19:5 b :69:5 d : d7 brd ff : ff : ff : ff : ff : ff
inet 192.168.0.1/24 scope global eth0
inet 172.16.22.1/16 scope global eth0
inet 10.0.0.1/8 scope global eth0
inet 10.0.0.2/8 scope global secondary eth0

Outra vantagem do comando ip é que é possível criar mais de uma tabela de rotas e definir
políticas para quais tabelas serão usadas. Dois exemplos de utilização dessa funcionalidade
é quando temos um roteador conectado a dois links de Internet. Devemos usar uma tabela
de rotas para cada um desses links. Desta forma nós evitamos que um pacote que entre em
nossa rede pelo link 1, por exemplo, não saia pelo link 2. Outra utilização é para fazermos
Load Balancing de links. Com as mesmas duas tabelas do exemplo de dois links, nós podemos
definir uma terceira tabela de rotas que tem como rota default os dois links, e esses com o
mesmo peso.
Você já se perguntou quantas tabelas de rotas existem em um sistema operacional Linux?
Por padrão três, mas podemos criar muitas outras. Veja a execução destes três comandos:

> sudo ip rule show


0: from all lookup local
32766: from all lookup main
32767: from all lookup default

> sudo ip rule add table 5

> sudo ip rule show


0: from all lookup local
32765: from all lookup 5
32766: from all lookup main
32767: from all lookup default

9
É assim que criamos uma nova tabela de rotas. Com o comando ip route add table
número da tabela.
Quando nós executamos o comando ip route show ele nos mostra a tabela main, mas
podemos dizer qual tabela queremos que seja mostrada da seguinte forma:

> sudo ip route show table main


192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.151 metric 1
192.168.120.0/21 dev wlan1 proto kernel scope link src 192.168.123.248 ←-
metric 2
172.16.0.0/16 dev eth0 proto kernel scope link src 172.16.22.1
169.254.0.0/16 dev eth0 scope link metric 1000
10.0.0.0/8 dev eth0 proto kernel scope link src 10.0.0.1
default via 192.168.0.1 dev eth0 proto static

Estas são somente algumas das vantagens e funcionalidades do comando ip. Existem muito
mais coisas que podemos fazer com essa ferramenta. Alguns exemplos são:

• Criação de interfaces do tipo túnel (ip tunnel)

• Monitoramento do estado de uma interface (ip monitor)

• Configuração do tipo de enfileiramento dos pacotes de uma interface (ip link)

3.1 Comando ip addr


O comando ip addr é utilizado no GNU/Linux para configurar parâmetros relacionados com
os protocolos da camada de rede, como por exemplo o IPv4 e o IPv6.
A primeira função que iremos ver e a mais simples do comando ip addr é a de listar quais
endereços IP estão configurados em uma interface de rede. Para os exemplos a seguir eu irei
utilizar uma interface do tipo Ethernet que no Linux é geralmente representada pelo nome
eth0. Veja o exemplo:

> ip addr show dev eth0


2: eth0 : MULTICAST , UP > mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link / ether 00:19:5 b :69:5 d : d7 brd ff : ff : ff : ff : ff : ff
inet 192.168.0.1/24 scope global eth0

Neste momento o que é importante perceber são os valores para o endereço IP, e neste caso
IPv4, atribuídos à interface eth0. Essa interface é a segunda interface reconhecida pelo sistema
GNU/Linux onde eu executei o comando ip addr show dev eth0. Isso está indicado logo no
começo da listagem pelo número 2:. Normalmente a primeira interface ativa no sistema é a
interface lo, ou seja, a interface loopback.
Se você quiser listar todas as interfaces disponíveis no seu sistema, execute o comando ip
addr show ou ip addr list sem o parâmetro dev da seguinte forma:

> ip addr show


> ip addr list

Para cada versão do protocolo IP, IPv4 ou IPv6, o comando ip addr show nos mostra para
qual versão um determinado endereço foi configurado através dos nomes inet, para o IPv4, e
inet6, para o IPv6.

10
Vamos esquecer por um momento a linha iniciada por link/ether, ela será explicada em
outro momento.
Agora para exemplificar a configuração de um endereço IP, vou adicionar um endereço IPv6
a interface eth0. Veja o exemplo:

> ip addr add 2001:0 db8 :0: f101 ::1/64 dev eth0

E novamente listando os endereços:

> ip addr show dev eth0


2: eth0 : MULTICAST , UP > mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link / ether 00:19:5 b :69:5 d : d7 brd ff : ff : ff : ff : ff : ff
inet 192.168.0.1/24 scope global eth0
inet6 2001: db8 :0: f101 ::1/64 scope global tentative
valid_lft forever preferred_lft forever

Agora nossa interface tem dois endereços IP configurados, um IPv4 e outro IPv6.
Podemos remover todos os endereços de uma só vez usando a função flush da seguinte
forma:

> ip addr flush dev eth0

E então a interface ficará sem endereços IP:

> ip addr show dev eth0


2: eth0 : MULTICAST , UP > mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link / ether 00:19:5 b :69:5 d : d7 brd ff : ff : ff : ff : ff : ff

Estas são as formas mais básicas de uso do comando ip addr.

3.2 O comando ip neigh


Neste serão apresentados os rudimentos de como o Linux se comunica com máquinas que estão
próximas a ele, ou seja, na mesma rede local e como o comando ip neigh é usado nesse cenário.

3.2.1 Conceitos de neighboring


Neighboring, do inglês vizinhança, é o nome de um subsistema do kernel do GNU/Linux
responsável por descobrir quais máquinas estão diretamente conectadas à máquina onde este
GNU/Linu está sendo executado. Esse processo de descobrimento deve acontecer sempre antes
que um pacote de camada de rede, como por exemplo o IPv4 ou o IPv6, seja enviado.
Um simples endereço IP não é suficiente para que um pacote seja entregue à máquina de
destino. Em redes locais, um outro tipo de endereço é necessário. Esse endereço é conhecido
como MAC Address, ou Media Access Control Address. Cada endereço MAC é único, ou seja,
não existem duas placas de rede com o mesmo endereço MAC, mesmo entre placas de um mesmo
fabricante.
Antes de enviar um pacote IP o subsistema de neighboring do Linux descobre qual é o
endereço MAC associado ao endereço IP da máquina para qual se quer enviar esse pacote. Essa
descoberta é feita através de dois protocolos: para endereços IPv4 o Linux usa o protocolo
ARP (Address Resolution Protocol) e para endereços IPv6 o Linux usa o protocolo ND

11
(Neighbor Discovery). O funcionamento desses protocolos é deixado de lado no momento,
mas basicamente o descobrimento de um neighbor é feito através de uma requisição e uma
resposta.

3.2.2 O que é um neighbor?


O Linux considera duas máquinas como sendo neighbors, ou vizinhas, se essas duas máquinas
estiverem diretamente conectadas em uma mesma rede e se também estiverem em uma mesma
rede IP. Duas ou mais máquinas estão diretamente conectadas se elas estiverem em um mesmo
domínio de broadcast, ou seja, se essas máquinas forem capazes de se comunicar sem a uti-
lização de um roteador. Exemplos: máquinas conectadas através de um cabo cruzado, um hub,
uma bridge, um switch ou até mesmo um link PPP.

3.2.3 E o comando ip neigh?


O comando ip neigh é usado para listar, adicionar ou remover entradas na tabela de neighbors,
ou tabela de associação entre endereços MAC e endereços IP. Eu vou evitar o termo tabela ARP,
pois, como já foi dito, para endereços IPv6 o protocolo ARP não é usado. Aliás, o protocolo
ARP irá morrer um dia junto com o IPv4.
Veja um exemplo do comando ip neigh:

> sudo ip neigh show


192.168.1.1 dev wlan0 lladdr 00: 11:22:33 :44:55 STALE
192.168.1.10 dev wlan0 INCOMPLETE

Neste exemplo vemos que um neighbor que tem endereço MAC 00:11:22:33:44:55 foi con-
figurado com o endereço IPv4 192.168.1.1 e o endereço IPv4 192.168.1.10, aparentemente, ainda
não foi configurado em nenhum neighbor.
Outra informação mostrada é o NUD, ou Neighbor Unrechability Detection. Cada en-
trada da tabela de neighbors tem um status que vai se modificando conforme acontecem
modificações na rede e conforme o Linux vai tentando se comunicar com seus neighbors.
O desligamento de um neighbor, uma tentativa de ping ou uma mudança de endereço IP
são exemplos de situações que causam mudança de status NUD em uma tabela de neighbors.
O subsistema de neighboring do Linux constantemente verifica o status dos neighbors e
atualiza essa tabela.
Estes são alguns dos status que uma entrada da tabela pode ter:

INCOMPLETE – Uma solicitação de endereço MAC foi enviada, mas nenhuma resposta foi
recebida ainda.

REACHABLE – Uma solicitação de endereço MAC foi enviada e a resposta já foi recebida.

PERMANENT – Nesse estado o relacionamento de um endereço MAC com um endereço IP


foi definido estaticamente, ou seja, não foi o subsistema de neighboring do Linux que
descobriu esse relacionamento, um administrador de redes simplesmente o definiu.

FAILED – Uma solicitação de endereço MAC foi enviada mas nenhuma resposta foi recebida.
Isso indica que não existe um neighbor configurado com o endereço IP solicitado.

Veja agora um exemplo de como adicionar uma entrada permanente na tabela de neighbors:

12
> ip neigh add 192.168.1.20 lladdr 11:22 :33:44:5 5:66 nud permanent dev ←-
wlan0

> ip neigh show


192.168.1.20 dev wlan0 lladdr 11:22:33 :44:55:66 PERMANENT
192.168.1.1 dev wlan0 lladdr 00: 11:22:33 :44:55 STALE

Neste caso indicamos o NUD status como permanent e essa entrada nunca sairá da tabela
de neighbors. Pelo menos não até um próximo reboot.
Isto é apenas um pouco do que podemos fazer com o comando ip neigh. Pretendo falar
sobre Proxy ARP em um próximo artigo. Então esperem mais detalhes sobre o comando ip
neigh e o subsistema de neighboring do Linux. Para mais informações, consulte o man ip(8).

3.2.4 Nomes lógicos das interfaces Ethernet


Nomes lógicos de interface são configurados no arquivo /etc/udev/rules.d/70-persistent-net.rules.
Se você gostaria de configurar qual interface recebe um nome lógico particular, encontre a linha
que contém o endereço físico (MAC address) em questão e modifique o valor de NAME=ethX
para o nome lógico desejado. Reinicie o sistema para validar suas alterações.

3.2.5 Configurações das interfaces Ethernet


O ethtool é um programa que mostra e modifica configurações de interfaces Ethernet como
auto-negociação, velocidade da porta, modo duplex, e Wake-on-LAN. Não está instalado por
padrão, mas está disponível para instalação nos repositórios. Para instalar o mesmo, basta
digitar na linha de comando

> sudo apt - get install ethtool

O exemplo a seguir mostra como visualizar as características suportadas e configurações de


uma interface Ethernet, usando o ethtool.

> sudo ethtool eth0


Settings for eth0 :
Supported ports : [ TP MII ]
Supported link modes : 10 baseT / Half 10 baseT / Full
100 baseT / Half 100 baseT / Full
Supported pause frame use : No
Supports auto - negotiation : Yes
Advertised link modes : 10 baseT / Half 10 baseT / Full
100 baseT / Half 100 baseT / Full
Advertised pause frame use : Symmetric Receive - only
Advertised auto - negotiation : Yes
Link partner advertised link modes : 10 baseT / Half 10 baseT / Full
100 baseT / Half 100 baseT / Full
Link partner advertised pause frame use : Symmetric
Link partner advertised auto - negotiation : Yes
Speed : 100 Mb / s
Duplex : Full
Port : MII
PHYAD : 0
Transceiver : internal
Auto - negotiation : on

13
Supports Wake - on : pumbg
Wake - on : g
Current message level : 0 x00000033 (51)
drv probe ifdown ifup
Link detected : yes

Modificações feitas com o comando ethtool são temporárias e serão perdidas depois de
uma reinicialização do sistema operacional. Se estas modificações devem ser persistentes, sim-
plesmente adicione o comando ethtool desejado a uma declaração pre-up no arquivo de con-
figuração da interface /etc/network/interfaces.
A seguir um exemplo de como a interface identificada como eth0 poderia ser permanen-
temente configurada com uma velocidade de porta de 1000Mb/s funcionando em modo full
duplex

auto eth0
iface eth0 inet static
pre - up / sbin / ethtool -s eth0 speed 1000 duplex full

Embora o exemplo acima mostre a interface configurada para usar o método static, este
também funciona com outros métodos, como DHCP. O exemplo visa demonstrar apenas o posi-
cionamento adequado da declaração pre-up em relação ao resto da configuração da interface.

3.3 Endereçamento IP
A seção a seguir descreve o processo de configuração dos endereços IP e default gateway do seu
sistema, necessários para comunicação em uma LAN e na Internet.

3.4 Arquivo /etc/network/interfaces


O arquivo contém somente

auto lo
iface lo inet loopback

Mas pode-se adicionar a inteface de rede com o dhcp adicionando

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

Assim para obter um ip basta digitar:

sudo service network - manager restart

ou

sudo restart network - manager

Caso seja necessário

14
sudo dhclient -v eth0

Para uma conecção estática

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.2.107
netmask 255.255.255.0
gateway 192.168.2.1
DNS server :202.112.14.151

3.4.1 Configuração de endereço IP temporário


Para configurações temporárias de rede, você pode usar comandos padrões como ip, ifconfig e
route, os quais também são encontrados na maioria dos outro sistemas operacionais GNU/Linux.
Estes comandos lhe permitem configurações de efeito imediato, entretanto estas não são per-
sistentes e serão perdidas depois de uma reinicialização.
Para configurar um endereço IP de forma temporária, você poderá utilizar o comando
ifconfig conforme descrição abaixo. Não se esquecendo de modificar o endereço IP e a máscara
de sub-rede para se adequar as necessidades da sua rede.

> sudo ifconfig eth0 10.0.0.100 netmask 255.255.255.0

Para verificar as configurações de endereçamento IP da interface eth0, você poderá utilizar


o comando ifconfig da seguinte forma.

> ifconfig eth0


eth0 Link encap : Ethernet HWaddr 00:15: c5 :4 a :16:5 a
inet addr :10.0.0.100 Bcast :10.0.0.255 Mask :255.255.255.0
inet6 addr : fe80 ::215: c5ff : fe4a :165 a /64 Scope : Link
UP BROADCAST RUNNING MULTICAST MTU :1500 Metric :1
RX packets :466475604 errors :0 dropped :0 overruns :0 frame :0
TX packets :403172654 errors :0 dropped :0 overruns :0 carrier :0
collisions :0 txqueuelen :1000
RX bytes :2574778386 (2.5 GB ) TX bytes :1618367329 (1.6 GB )
Interrupt :16

Para configurar o gateway padrão, você poderá utilizar o comando route da seguinte forma.
Não se esquecendo de utilizar um endereço de gateway que corresponda as necessidades da sua
rede.

sudo route add default gw 10.0.0.1 eth0

Para verificar as configurações de gateway padrão, você poderá utilizar o comando route
da seguinte maneira.

> route -n
Kernel IP routing table

15
Destination Gateway Genmask Flags Metric Ref Use ←-
Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 1 0 0 ←-
eth0
0.0.0.0 10.0.0.1 0.0.0.0 UG 0 0 0 ←-
eth0

Se for necessário um DNS para sua configuração de rede temporária, deve-se acrescentar o
endereço de IP do servidor DNS ao arquivo /etc/resolv.conf. Em geral, uma edição direta do
arquivo /etc/resolv.conf não é recomendada, mas ista é uma configuração temporária e não
persistente. O exemplo em abaixo mostra como introduzir dois servidores de DNS ao arquivo
/etc/resolv.conf, que deve ser modificado para servidores apropriados para a sua rede. Uma
descrição mais longa de fazer uma configuração do modo persistente próprio do cliente DNS é
fornecida na seção 3.5.

nameserver 8.8.8.8
nameserver 8.8.4.4

Se você não precisa mais desta configuração e deseja remover toda a configuração IP de
uma interface, você pode usar o comando ip com a opção flush como demonstrado a seguir.

> ip addr flush eth0

Para limpar a configuração de IP usando o comando ip não limpa o conteúdo do /etc/resolv.conf.


Você deve remover ou modificar as entradas manualmente, ou reinicializar a máquina que tam-
bém deve reinicializar o arquivo /etc/resolv.conf, que na verdade agora é um link simbólico
para o arquivo /run/resolvconf/resolv.conf, para ser re-escrita.

3.4.2 Configuração de endereço IP dinâmico (Cliente DHCP)


Para configurar seu servidor para usar DHCP como endereçamento dinâmico, adicione o método
dhcp à declaração inet para a interface apropriada no arquivo /etc/network/interfaces.
O exemplo abaixo é para a configuração da sua primeira interface Ethernet identificada como
eth0.

auto eth0
iface eth0 inet dhcp

Ao adicionar uma configuração de interface como mostrado anteriormente, você pode manual-
mente habilitar a interface através do comando ifup que inicia o processo DHCP via dhclient.

sudo ifup eth0

Para desabilitar uma interface manualmente, você poderá utilizar o comando ifdown, que por
sua vez iniciará o processo de liberação de DHCP, e desligará a interface.

> sudo ifdown eth0

16
3.4.3 Configuração de endereço IP estático
Para configurar seu sistema para que o mesmo use um endereço IP estático, adicione o método
static à declaração inet para a interface apropriada no arquivo /etc/network/interfaces.
O exemplo a seguir é para a configuração da sua primeira interface Ethernet identificada como
eth0. Troque os valores de address, netmask, e gateway de acordo com as especificações da
sua rede.

auto eth0
iface eth0 inet static
address 10.0.0.100
netmask 255.255.255.0
gateway 10.0.0.1

Para adicionar uma configuração de interface, como mostrado acima, você pode habilitar
manualmente a interface através do comando ifup.

> sudo ifup eth0

Para desativar manualmente a interface, você pode usar o comando ifdown.

> sudo ifdown eth0

3.4.4 Interface local


A interface de loopback é identificada pelo sistema como lo, possui endereço IP padrão
127.0.0.1, e pode ser visualizada através do comando ifconfig.

> ifconfig lo
lo Link encap : Local Loopback
inet addr :127.0.0.1 Mask :255.0.0.0
inet6 addr : ::1/128 Scope : Host
UP LOOPBACK RUNNING MTU :16436 Metric :1
RX packets :2718 errors :0 dropped :0 overruns :0 frame :0
TX packets :2718 errors :0 dropped :0 overruns :0 carrier :0
collisions :0 txqueuelen :0
RX bytes :183308 (183.3 KB ) TX bytes :183308 (183.3 KB )

Por padrão, deveria haver duas linhas em /etc/network/interfaces responsáveis por au-
tomaticamente configurar sua interface loopback. É recomendado que você mantenha estas
configurações a menos que você tenha um propósito específico para as modificar. Um exemplo
das duas linhas padrões é mostrado a seguir:

auto lo
iface lo inet loopback

3.5 Resolução de nomes


A resolução de nome que se refere à rede IP é o processo de mapeamento de endereços IP para
nomes de máquinas, tornando isso mais fácil a identificação de recursos na rede. A seguinte

17
seção irá explicar como configurar corretamente o seu sistema para resolução de nomes usando
o DNS e registros para nomes de máquinas estáticos.

3.5.1 Configuração do Cliente DNS


Tradicionalmente, o arquivo /etc/resolv.conf é um arquivo de configuração estático que rara-
mente precisa ser modificado ou automaticamente modificado via ganchos de cliente DCHP.
Atualmente, um computador pode trocar de uma rede para outra muitas vezes e a armação
resolvconf está sendo usada agora para seguir a pista dessas modificações e atualizar a config-
uração da pessoal que será resolvida automaticamente. Ele atua como um intermediário entre
programas que fornecem informação nameserver e aplicações aquela necessidade nameserver
informação. O Resolvconf é povoado com a informação por um jogo de escritas de gancho
relacionadas para transmitir a configuração de interface em rede. A diferença mais notável do
usuário é que qualquer modificação manualmente feita a /etc/resolv.conf será perdida como
é sobregravado cada vez quanto algo provoca resolvconf. Em vez disso, o resolvconf usa
ganchos de cliente DHCP, e /etc/network/interfaces para gerar uma lista de nameservers e
domínios para pôr em /etc/resolv.conf, que é agora um symlink (link simbólico):

/ etc / resolv . conf -> ../ run / resolvconf / resolv . conf

Para configurar o resolvedor de nomes, adicione o endereço de IP dos servidores de nomes


apropriados para sua rede no arquivo /etc/network/interfaces. Opcionalmente pode-se
adicionar um sufixo DNS a lista de buscas que casam com o domínio de nomes de sua rede. Para
cada outra opção de configuração válida do resolv.conf, pode-se incluir, na estrofe, uma linha
que começa com esse nome de opção com um prefixo dns-. O arquivo resultante pode parecer
com o seguinte:

iface eth0 inet static


address 192.168.3.3
netmask 255.255.255.0
gateway 192.168.3.1
dns - search example . com
dns - nameservers 192.168.3.45 192.168.8.10

A opção search também pode ser usada com vários nomes de domínio de modo que as
consultas DNS serão anexadas na ordem em que são inseridos. Por exemplo, Sua rede pode
ter vários sub-domínios para pesquisar; um domínio de nível superior exemplo.com, e dois
sub-domínios, vendas.exemplo.com e dev.exemplo.com.
Se você tem múltiplos domínios que você pode querer pesquisar, e sua configuração poderá
ter uma forma similar a:

iface eth0 inet static


address 192.168.3.3
netmask 255.255.255.0
gateway 192.168.3.1
dns - search example . com sales . example . com dev . example . com
dns - nameservers 192.168.3.45 192.168.8.10

Se você tentar executar o ping em um host com o nome de server1, seu sistema auto-
maticamente consultará DNS para o Nome de Domínio Totalmente Qualificado(FQDN) d ele na
seguinte ordem:

18
1) servidor1.exemplo.com
2) servidor1.vendas.exemplo.com
3) servidor1.dev.exemplo.com
Se não forem encontradas correspondências, o servidor DNS irá fornecer um resultado de
notfound e a consulta DNS irá falhar.

3.5.2 Nomes de máquinas estáticos


Hostnames estáticos são definidos localmente como hostname para mapeamentos de IP local-
izado no arquivo /etc/hosts. As entradas no arquivo hosts terão precedência sobre DNS de
forma padrão. Isto significa que se o seu sistema tenta resolver um hostname e isso corresponde
a uma entrada no arquivo /etc/hosts, ele não tentará procurar o registro no DNS. Em algu-
mas formações, especialmente quando o acesso a Internet não é necessário, servidores que se
comunicam com um número limitado de recursos podem ser facilmente configurados para usar
hostnames estático em vez de DNS.
O seguinte é um exemplo de um arquivo hosts onde um número de servidores locais tem
sido identificados simplismente pelo nome de suas máquinas, apelidos e seus equivalentes Nomes
de Domínio Totalmente Qualificado (FQDN’s).

127.0.0.1 localhost
127.0.1.1 ubuntu - server
10.0.0.11 server1 server1 . example . com vpn
10.0.0.12 server2 server2 . example . com mail
10.0.0.13 server3 server3 . example . com www
10.0.0.14 server4 server4 . example . com file

No exemplo acima, note que cada um dos servidores tem sido dado apelidos além de seus
corretos nomes e FQDN’s. Server1 tem sido mapeado para o nome de vpn, server2 é referido
como mail, server3 como www, e server4 como file.

3.5.3 Configuração do Serviço de Sistema de Nomes


A ordem na qual o sistema escolhe um método de resolver hostnames (nomes de máquinas)
para endereços IP é controlado pelo arquivo de configuração do Sistema de Serviço de Nomes
(NSS) /etc/nsswitch.conf. Como mensionado na seção anterior, tipicamente hosts estáticos
definidos no arquivo de sistema /etc/hosts têm precedência sobre nomes resolvidos de DNS.
O seguinte é um exemplo da linha responsável por esta ordem de buscas hostname no arquivo
/etc/nsswitch.conf.

hosts : files mdns4_minimal [ NOTFOUND = return ] dns mdns4

1) files primeiro tente resolver hostnames estáticos localizados em /etc/hosts.


2) mdns4_minimal tentativas de resolver o nome usando DNS Multicast (Multicast é a entrega
de informação para múltiplos destinatários simultaneamente).
3) [NOTFOUND=return] significa que cada resposta de notfound pelo processo anterior mdns4_minimal
deve ser tratado como competente e que o sistema não deve tentar continuar a caça para
uma resposta.

19
4) dns representa um legado de procura de DNS unicast (unicast é um endereçamento para
um pacote feito a um único destino, ponto-a-ponto).

5) mdns4 representa uma procura de DNS Multicast (Multicast é a entrega de informação


para múltiplos destinatários simultaneamente).

Para modificar a ordem dos métodos de resolução de nomes mencionados acima, você pode
simplesmente mudar a string hosts: para o valor de sua escolha. Por exemplo, se você
preferir usar o legado de DNS Unicast versus DNS Multicast, você pode mudar a string em
/etc/nsswitch.conf como é mostrado abaixo.

hosts : arquivos dns [ NOTFOUND = return ] mdns4_minimal mdns4

3.6 Ponte
Unindo várias interfaces de rede é uma configuração mais avançada, mas é muito útil em vários
ambientes. Um ambiente está configurando uma ponte com várias interfaces de rede, usando um
firewall para filtrar o tráfego entre os dois seguimentos de rede. Outro ambiente está usando
uma ponte no sistema com uma interface de rede para permitir o acesso direto de máquinas
virtuais do lado de fora da rede. O exemplo a seguir abrange o último ambiente.
Antes de configurar uma ponte terá de instalar o pacote bridge-utils. Para instalar o
pacote, em um terminal digite:

sudo apt - get install bridge - utils

Em seguida, configure a ponte, editando /etc/network/interfaces:

auto lo
iface lo inet loopback

auto br0
iface br0 inet static
address 192.168.0.10
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off

Entre com os valores apropriados para sua interface física e rede. Agora inicialize a ponte:

sudo ifup br0

A nova ponte de interface deve agora estar ativa e funcionando. O brctl fornece informações
úteis sobre o estado da ponte, controla quais interfaces são parte da ponte, etc. Veja man brctl
para mais informações.

20
4 Exemplos do comando nmcli
1. Para determinar se o NetworkManager está rodando ou não

nmcli -t -f RUNNING nm

2. Mostra o “status” do NetworkManager.

nmcli -t -f STATE nm

3. A opção off (on) Desabilita (habilita) a rede wi-fi.

nmcli nm wifi off

4. Lista todas as conecções gerenciadas pelo NetworkManager.

nmcli -p con list

5. Lista o nome de todas as conecções e seus parâmetros de autoconecção

nmcli -f name , autoconnect con list

6. Lista todos os detalhes da conecção chamada “Minha-wifi”

nmcli con list id " Minha - wifi "

7. Ativa a conecção com o nome de “Rede cabeada” na interface eth0. A opção -p faz com
que o nmcli mostre o progresso da ativação.

nmcli -p con up id " Rede cabeada " iface eth0

8. Ativa a conecção Wi-fi com UUID 6b028a27-6dc9-4411-9886-e9ad1dd43761 ao AP com


BSSID 00:3A:98:7C:42:D3.

nmcli con up uuid 6 b028a27 -6 dc9 -4411 -9886 - e9ad1dd43761 ap 00:3 A :98:7 C←-
:42: D3

9. Mostra o status de todos os dispositivos

nmcli dev status

21
10. Desabilita a conecção na interface em2 e marca o dispositivo com indisponível para au-
toconecção. A partir de então, nenhuma conecção será ativada automaticamente no dis-
positivo. Essa configuração permanecerá até que a opção de autoconecção do dispositivo
receba o flag "TRUE", ou que o usuário ative manualmente uma conecção

nmcli dev disconnect iface em2

11. Listas os detalhes da interface wlan0. Somente as seções GENERAL e WIFI-PROPERTIES


serão mostradas.

nmcli -f GENERAL , WIFI - PROPERTIES dev list iface wlan0

12. Lista todos os pontos de acesso Wi-Fi conhecidos pelo NetworkManager.

nmcli dev wifi

13. Cria uma nova coneção chamada "My cafe" e conecta ela a rede de SSID "Cafe Hotspot
1" usando a senha "caffeine". Isso é útil principalmente ao se conectar a rede "Cafe
Hotspot 1" pela primeira vez. Na próxima vez, é melhor usar ’nmcli con up id "My cafe"
para que o perfil de conexão existente possa ser utilizado e nenhum adicional ser criado.

nmcli dev wifi con " Cafe Hotspot 1 " password caffeine name " My cafe "

14. Mostra todos os detalhes da conecção via a interface de rede "wlan0" Para ubuntu 14.04
e anteriores

nmcli dev list iface wlan0

Para ubuntu 15.04 e superioresanteriores

nmcli dev show wlan0

15. Mostra os DNS usados na conecção via a interface de rede "wlan0"

nmcli dev list iface wlan0 | grep IP4

16. Como mudar o DNS da rede

nmcli connection show -- active " to obtain active connection name "
nmcli connection edit " double tab to list available connections and ←-
chose appropriate "

nmcli > remove ipv4 . dns


nmcli > set ipv4 . ignore - auto - dns yes
nmcli > set ipv4 . dns 8.8.8.8 8.8.4.4 ( or other dns servers )

22
nmcli > save
nmcli > quit

nmcli connection down " y o u r _ c o n n e c t i o n _n a m e "


nmcli connection up " y o u r _ c o n n e c t i o n _ n am e "

5 Configurando a rede na linha de comando


5.1 Configurando a interface de rede usando a linha de comando
No GNU/Linux pode configurar uma interface de rede a partir da linha de comando. Pode-se
configurar seus clientes ("hosts") de rede com a linha de comando, usando para isso, comandos
específicos para alterar as configurações atuais ou ainda editando uma série de arquivos de
configuração do sistema.

5.2 Encontrando a placa da interface de rede


Ao configurar a sua rede, é necessário conhecer a placa da interface de rede do seu computador.
O nome da interface da placa de rede para diferentes fornecedores pode ser diferente, razão
pela qual este passo é necessário.

ls / sys / class / net

Esse comando irá listar os nomes das interfaces para todas as placas do seu computador.
Sua saída provavelmente incluirá as interfaces eth0 (da placa que conecta a rede cabeada), o
lo (loopback interface para o localhost), e algo para a sua placa de rede sem fio (como wlan0
ou wifi0).

5.3 Configurando um endereço de IP estático para sua placa de rede


Para configurar um endereço de IP estático edite o arquivo de configuração /etc/network/interfaces
com o seu editor favorito, como por exemplo,

sudo nano / etc / network / interfaces

Uma vez aberto o arquivo, substitua eth0 com a sua placa de rede da interface.
Aqui mostra-se o conteúdo do arquivo /etc/network/interfaces

# The primary network interface


auto eth0
iface eth0 inet static
address 192.168.2.33
gateway 192.168.2.1
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255

Para essas configuração serem ativadas é necessário reiniciar os serviços de rede. Para isso,
faça

23
sudo service networking restart

ou

sudo / etc / init . d / networking restart

5.4 Configurando um segundo endereço de IP ou um endereço de IP


virtual
Se for preciso de configurar um segundo endereço de IP, edite o arquivo /etc/network/interfaces,
com o seu editor favorito,

sudo nano / etc / network / interfaces

e modifique o conteúdo do arquivo /etc/network/interfaces para que ele fique da seguinte


forma:

auto eth0 :1
iface eth0 :1 inet static
address 192.168.2.33
netmask 255.255.255.0
network x . x . x . x
broadcast x . x . x . x
gateway x . x . x . x

Você precisa digitar todos os detalhes como os valores de: address, netmask, network,
broadcast e gateways.
Para essas novas configurações tenham efeito, você precisará reiniciar os serviços de rede
usando o seguinte comando

sudo / etc / init . d / networking restart

5.5 Definindo seu Hostname


O comando hostname permite consultar diretamente, ou definir, o nome da máquina a partir
da linha de comando.
Você pode ver o seu nome de host atual com

sudo / bin / hostname

Para definir o hostname diretamente digite o seguinte comando

sudo / bin / hostname newname

Quando o seu sistema inicializa ele irá ler automaticamente o hostname a partir do arquivo
/etc/hostname.

24
5.6 Definindo o DNS
Pode-se adicionar endereços IP e nomes de máquinas para ao arquivo /etc/hosts para pesquisas
estáticas.
Para fazer com que a sua máquina consulte um servidor específico para pesquisas de nome
você simplesmente deve adicionar seus endereços de IP ao arquivo /etc/resolv.conf.
Por exemplo, uma máquina que deve executar pesquisas do servidor DNS no endereço IP
192.168.3.2, para isso edite o arquivo com

sudo nano / etc / resolv . conf

e entre os seguintes detalhes

search myaddress . com nameserver 192.168.3.2

Assim o arquivo resolv.conf ficará parecido com

search myaddress . com


nameserver 127.0.1.1
nameserver 192.168.3.2

Se você já está usando o Ubuntu 12.04 ou superiores e os updates mais recentes do Debian
6.x, deve ter reparado que o arquivo /etc/resolv.conf, que era responsável pela configuração
do DNS em sistemas Linux, não existe mais.
Isso mesmo, no lugar dele foi implementado um pacote de scripts que, em conjunto com
o NetworkManager e com o DHCP Client, alteram o DNS em conexões com IP dinâmico e/ou
gerenciadas por PPPoE. No lugar do arquivo /etc/resolv.conf agora está o diretório /etc/resolvconf/,
onde encontramos os arquivos responsáveis pelo gerenciamento de DNS resolv.conf.d/head e
resolv.conf.d/base, dentre outros. Os quais não podem e não devem ser alterados manual-
mente, como era feito com o antigo resolv.conf.
O intuito não é explicar o porque da mudança, e sim como alterá-lo de forma simples e
funcional.
Abra um terminal e instale o pacote resolvconf, que provavelmente já estará instalado,
porém digite

sudo apt - get install resolvconf

Caso já esteja instalado, ok. Agora, será editado o arquivo /etc/resolvconf/resolv.conf.d/head


e para isso digite:

sudo nano / etc / resolvconf / resolv . conf . d / head

Abaixo do conteúdo já existente no arquivo, digite os servidores DNS que se deseja inserir.
No exemplo,será usado o DNS do Google 8.8.8.8 e o DNS raiz 4.2.2.2. A sintaxe deve ser essa:

# Dynamic resolv . conf (5) file for glibc resolver (3) generated by resolvconf←-
(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.8.8
nameserver 4.2.2.2

25
Agora digite:

sudo resolvconf -u

Em seguido reinicie o serviço de rede

sudo service networking restart

ou reinicie sua máquina e abra o gerenciador de redes do seu sistema para conferir o DNS da
sua conexão. Se você fez tudo correto, estará assim:

> nmcli dev list iface eth0 | grep IP4


IP4 . ENDERE Ç O [1]: ip = 192.168.0.32/24 , gw = 192.168.0.1
IP4 . DNS [1]: 8.8.8.8
IP4 . DNS [2]: 4.2.2.2

ou você ainda pode usar o comando nm-tool da seguinte forma:

> nm - tool | grep DNS :


DNS : 8.8.8.8
DNS : 4.2.2.2

ou ainda

> nmcli -t -f IP4 device list iface eth0


IP4 . DNS [1]:8.8.8.8
IP4 . DNS [2]:4.2.2.2

ou ainda

> nmcli -t -f IP4 device list " Nome - da - coneccao "


IP4 . DNS [1]:8.8.8.8
IP4 . DNS [2]:4.2.2.2

Um recurso meia boca é tornar o arquivo /etc/resolv.conf inalterável com o comando


chattr, mas isso não é conveniente para máquinas móveis e é um recurso pouco elegante.
A seguir será mostrado como fazer para que o /etc/resolv.conf tenha sempre o IP do
servidor DNS preferido, sem a gambiarra acima. Nesse caso será utilizaremos o DNS do opendns
como exemplo, mas pode quer qualquer outro:

servidor DNS prim á rio -> 208.67.222.222


servidor DNS secund á rio -> 208.67.220.220

Abra o arquivo /etc/dhcp/dhclient.conf e procure as linhas:

# supersede domain - name " fugue . com home . vix . com ";
# prepend domain - name - servers 127.0.0.1;

Deixe-as assim:

26
supersede domain - name " h o s t _ d o _ s e r v i d o r _ DN S " ;
prepend domain - name - servers " servid or_DNS_pr im á rio " , " s e rv i do r _D N S _s e cu n d á←-
rio " ;

ou

supersede domain - name " opendns . com " ; # manter o host entre aspas
prepend domain - name - servers 208.67.222.222 , 208.67.220.220; # manter ←-
servidores sem aspas , separados por v í rgula

Salve e conecte-se à rede normalmente. O servidor vai adicionar os IP’s dele ABAIXO dos
configurados por você. Como a leitura do /etc/resolv.conf é feita "de cima para baixo", os
seus servidores DNS serão acessados em primeiro lugar. Somente serão ignorados se estiverem
inativos.
Veja como ficou o meu arquivo:

# Generated by NetworkManager domain opendns . com


search opendns . com
nameserver 208.67.222.222 # DNS prim á rio do "/ etc / dhcp / dhclient . conf "
nameserver 208.67.220.220 # DNS secund á rio do "/ etc / dhcp / dhclient . conf "
nameserver 192.168.2.1 # DNS do servidor da rede

Esta dica é muito útil para aquelas distros que não permitem o uso do chattr, porque o
programa resolvconf está instalado.

5.7 Configurando o endereço de DHCP para sua placa de rede


O endereço de DHCP pode ser configurado editando o arquivo /etc/network/interfaces.
Troque eth0 pelo adequado a sua placa de rede. Faça

sudo nano / etc / network / interfaces

# The primary network interface use DHCP to find our address


auto eth0
iface eth0 inet dhcp

5.8 Como definir o MTU para uma conecção DHCP


Embora está não esteja documentada no manual para as interfaces, MTU para um dispositivo
DHCP conectado pode ser definida no arquivo /etc/network/interfaces. Para fazer isso,
é necessário adicionar o comando ’pre-up’ a seção iface da interface em questão. A seguir
mostra-se um exemplo:

iface eth0 inet dhcp pre - up / sbin / ip link set $IFACE mtu 1492

O exemplo acima define a MTU para o dispositivo eth0 para 1492, a MTU normal para
uma conexão PPPoE ISP. Porém, essa só é necessária se conexões parecem pendurar outra
forma (com o padrão de 1500).

27
The above example sets the MTU for device eth0 to 1492, the usual MTU for a PPPoE
ISP connection. This however is only needed if connections seem to hang otherwise (with the
default of 1500).

6 Obtendo informações do sistema Ubuntu Linux


Para computadores, laptops ou servidores novos, é preciso coletar algumas informações sobre
seu hardware. Isso também é útil quando você precisa substituir um disco ou memória com um
fornecedor. A fim de substituir o hardware que você precisa todas as informações antecipada-
mente. Aqui serão listados todos os comandos necessários usar, em uma distribuição ubuntu,
para coletar as informações de um hardware específico.
Todos os comandos listados a seguir foram testados em um Ubuntu Linux LTS 14.04, en-
tretanto eles também devem funcionar em qualquer outra distribuição GNU/Linux moderna,
tais como Debian, Fedora, Opensuse Linux, etc.

6.1 Determinando o hostname da máquina


Para mostrar o hosname da máquina, digite:

> hostname
> cat / etc / hostname
server1

Mostra o nome do domínio, o DNS, do sistema:

> dnsdomainname
cyberciti . biz

Para mostra o systema Fully Qualified Domain Name (FQDN):

> hostname -f
server1 . cyberciti . biz

6.2 Determine os números de séries de fabrica dos dispositivo

> sudo dmidecode -s system - serial - number


76 LU56
> sudo dmidecode -s system - manufacturer
Dell Inc .
> sudo dmidecode -s system - product - name
Inspiron 5447
> sudo dmidecode | more

ou use o comando lshw:

> lshw | more


> sudo lshw - short

28
6.3 Mostra informações sobre o hardware instalado
Instale o programa ’lsdev’ digitando:

> sudo apt - get install procinfo

e para obter as informações digite

> sudo lsdev


Device DMA IRQ I / O Ports
------------------------------------------------
0000:00:02.0 5000 -503 f
0000:00:1 f .2 5060 -507 f 5080 -5087 5088 -508 f ←-
5090 -5093 5094 -5097
0000:00:1 f .3 5040 -505 f
0000:01:00.0 4000 -40 ff
0000:03:00.0 3000 -30 ff
acpi 9
ACPI 1800 -1803 1804 -1805 1808 -180 b ←-
1810 -1815 1850 -1850 1880 -189 f
ahci 61 5060 -507 f 5080 -5087 5088 -508 f ←-
5090 -5093 5094 -5097
ath9k 19
cascade 4
DLL063E :00 39
dma 0080 -008 f
dma1 0000 -001 f
dma2 00 c0 -00 df
EC 0062 -0062 0066 -0066
ehci_hcd : usb1 23
eth0 60
fpu 00 f0 -00 ff
i8042 1 12
i915 63
INT33C3 :00 7
INT33C7 :00 0800 -0 bff
iTCO_wdt 1830 -1833 1860 -187 f
keyboard 0060 -0060 0064 -0064
lp - gpio 0800 -0 bff
mei_me 62
PCI 0000 -0 cf7 0 cf8 -0 cff 0 d00 - ffff 3000 -3 fff ←-
4000 -4 fff
PCIe PME 56 57 58
pic1 0020 -0021
pic2 00 a0 -00 a1
pnp 0680 -069 f 164 e -164 f 1854 -1857 fd60 -←-
fd63 ffff - ffff ffff - ffff ffff - ffff
r8169 4000 -40 ff
rtc0 8 0070 -0077
snd_hda_intel 64 65
timer 0
timer0 0040 -0043
timer1 0050 -0053
xhci_hcd 59

29
6.4 Determine informações sobre a CPU do sistema

cat / proc / cpuinfo

ou

lscpu

6.5 Mostra uma estatística relacionada a CPU (processadores)


Primeiro instale o programa ’mpstat’ digitando:

sudo apt - get install sysstat

agora digite

sudo mpstat
sudo mpstat 1
sudo mpstat -A

6.6 Determinando informações sobre a memória (RAM) do sistema


Mostra estatísitica sobre o uso da memória no sistema incluido a memória total instalada e a
RAM usada:

less / proc / meminfo

Mostra a quantidade de memória livre no sistema:

free

Mostra a quantidade de memória livre no sistema em megabytes

free -m

Mostra a quantidade de memória livre no sistema em gigabytes

free -g

Mostra a quantidade de memória livre no sistema em terabytes

free -- tera

Mostra a quantidade de memória livre no sistema de forma humanamente compreensível

free -h

30
6.7 Mostra o espaço usado pelo sistema swap

swapon -s
cat / proc / swaps
cat / proc / meminfo
top
vmstat
for file in / proc /*/ status ; do awk '/ VmSwap | Name /{ printf $2 " " $3 } END { ←-
print
" " } ' $file ; done | sort -k 2 -n -r | less
smem

6.8 Show the system virtual memory statistics

sudo vmstat
sudo vmstat 1
sudo vmstat 2

6.9 Find the Ubuntu Linux distribution version and related informa-
tion

lsb_release -a

6.10 Find the system kernel version number

uname -r

OR

uname -a

6.11 Find the system kernel parameters

cat / proc / cmdline


sysctl -a | more

6.12 Find the system kernel architecture (32 bit or 64 bit)

uname -m
getconf LONG_BIT
arch

31
6.13 Find the system disk information
Show all installed disks and size:

fdisk -l | grep '^ Disk / dev '

6.14 List all partitions of /dev/sda disk


To read a disk label for /dev/sda:

fdisk -l / dev / sda

To label a disk:

sudo fdisk / dev / sda


sudo e2label / dev / sda1
sudo cfdisk / dev / sda

6.15 Show block device attributes

blkid

6.16 List all block devices

lsblk

6.17 Display file system disk space usage

df
df -H
df - HT

6.18 Estimate file space usage

du
du / home

32
6.19 Display mounted file system

cat / proc / mount


mount

6.20 Display SCSI devices (or hosts) and their attributes on Linux

lsscsi

6.21 Display I/O statistics

sudo iostat
sudo iostat 2

6.22 Find the system PCI devices information

lspci
lspci - vt
lspci | grep -i ' something '
lspci - vvvn | less

6.23 Find the system USB devices information

lsusb
lsusb - vt

6.24 Find the system Wireless devices information

iwconfig
watch -n 1 cat / proc / net / wireless
wavemon

6.25 Find the system VGA/Graphics devices information

lspci | grep -i vga


lspci - vvnn | grep VGA

OR

33
sudo lshw - class display

6.26 Find the system NVIDIA Graphics devices information


The following commands only works with Nvidia’s binary Linux driver:

nvidia - smi

OR

nvidia - settings

6.27 Find the system AMD/ATI Graphics devices information


The following command only works with AMD’s binary Linux driver called catalyst:

fglrxinfo

6.28 Which version of Unity am I running?

unity -- version

6.29 Find the system audio devices information

lspci | grep -i audio

OR

cat / proc / asound / cards

OR

arecord -l

6.30 Display the system/laptop battery status & thermal tempera-


ture

upower -i / org / freedesktop / UPower / devices / battery_BAT0


acpi -V

34
6.31 Find out how long the system has been running

uptime
who
w

6.32 Find the system load

uptime
cat / proc / loadavg
sudo top
sudo htop
sudo atop

6.33 Show the system reboot and shutdown history

last reboot
last shutdown

6.34 Show runlevel

runlevel
who -r

6.35 Display kernel ring buffer (boot time) messages


Use the following command to see boot time message including hardware configuration

sudo less / var / log / dmesg


sudo grep ' regx ' / var / log / dmesg
sudo grep '[ h | s ]d ' / var / log / dmesg

6.36 Display the system drivers (modules)

sudo lsmod
sudo modinfo { driver_name }
sudo modinfo kvm

35
6.37 Find the system IP address and related information
6.37.1 You need to use the ip command:
Info about all interfaces. Must be run as root via sudo command

sudo ip a
sudo ip
sudo ip link ls up
sudo ifconfig -a

6.37.2 Only show eth1 interface info

sudo ip a show eth0


sudo ifconfig eth0

6.38 Display the system routing table


You can use any one of the following command Must be run as root

sudo ip r
sudo route -n
sudo netstat - nr

6.39 Display the system ethernet bridge

sudo brctl show


sudo bridge link

6.40 Display the system DNS server and related information


Display the system name server IP address (ISP or your dns server IP should be listed here):

cat / etc / resolv . conf

Display the system resolver configuration file. This is useful to find out how host lookups
are to be performed:

cat / etc / host . conf

Use above two files to configure name resolution.

6.41 Display information about the system ports and socket


Must run as root via sudo

36
sudo ss

6.41.1 Display all listing ports

sudo ss -l
sudo netstat - tulpn
sudo netstat - tulpn | grep LISTEN

6.41.2 Display all TCP sockets

sudo ss -t -a

6.41.3 Display all UDP sockets

sudo ss -u -a

6.41.4 List all open files

lsof | more
lsof | grep something
lsof / dev / sda2
lsof / path / to / file

6.42 Display the list of running services


6.42.1 SYS V

sudo service -- status - all

OR

6.42.2 UPSTART

sudo initctl list

37
6.43 Find out if service is enabled
6.43.1 UPSTART

sudo initctl status service - name


sudo initctl status smbd

OR

6.43.2 SYS V

sudo service serviceName status


sudo service nginx status

6.43.3 View installed packages by task


Once the installation process has finished you can view a list of available tasks by entering the
following from a t erminal prompt:

> tasksel -- list - tasks

The output will list tasks from other Ubuntu based distributions such as Kubuntu and
Edubuntu. Note that you can also invoke the tasksel command by itself, which will bring up a
menu of the different tasks available.
You can view a list of which packages are installed with each task using the –task-packages
option.
For example, to list the packages installed with the DNS Server task enter the following:

> tasksel -- task - packages dns - server

The output of the command should list:

bind9 - doc
bind9utils
bind9

If you did not install one of the tasks during the installation process, but for example you
decide to make your new LAMP server a DNS server as well, simply insert the installation CD
and from a terminal:

sudo tasksel install dns - server

6.44 View log files

cd / var / log
ls -l

38
tail -f / var / log / fileName
grep ' something ' / var / log / fileNameHere

6.45 Find file by name

locate fileName
locate htpasswd
locate passwd
locate my . resume . doc

6.46 Find file by given condition

find {/ dir / to / search } - name { file - to - search } - print


find / etc / - name / etc / passwd - print
find $HOME - name '*. doc ' - print

6.47 View user account details

less / etc / passwd


grep userName / etc / passwd
getent passwd

6.48 View group account details

less / etc / group


getent group
grep group - name / etc / group
groups userName

6.49 View password policy

chage -l userName
chage -l root
chage -l vivek

6.50 View system usage

sudo top
sudo htop
sudo atop

39
sudo ps auxwww
sudo netstat [ options ]
sudo iostat
sudo mpstat 1
sudo sar [ options ]

6.51 Trace system call

strace -o output . txt / bin / foo


strace -p 22254 -s 80 -o debug . nginx . txt

6.52 Trace library call

sudo ltrace / usr / sbin / httpd


sudo ltrace / sbin / chroot / usr / sbin / httpd

6.53 View process info

sudo pstree
sudo pstree | less
sudo ps auxwwwm
ps alxwww
ps auxwww
lsof -b M -n -l

6.54 Change process priority

sudo / bin / nice -n -1 command - name - here


sudo / bin / nice -n -1 pid
sudo renice { priority } pid

6.55 View process’s CPU affinity

sudo taskset -p { pid - here }


sudo taskset -p 42

6.56 Display the system listing of all package installed

40
dpkg -l
dpkg -l | less
dpkg -l nginx

6.57 Display the system listing of all patches installed

sudo apt - show - versions -a | grep -i " security "

6.58 Display the list of needed runtime libraries to run file

ldd file

6.59 Find what package a file belongs to

dpkg -S / path / to / file


dpkg -S / bin / ls

6.60 Create a backup list of all installed software

sudo dpkg -- get - selections > / root / installed . pkgs . txt

Want to restore it again?

sudo dpkg -- set - selections < / root / installed . pkgs . txt

6.61 Display the system firewall configuration

sudo iptables -L -n -v
sudo ufw status numbered
sudo ufw status verbose
sudo ufw app list

6.62 Do not forget to read man pages featured in this post:

man dpkg
man htop
man ...

41
Finally, make a backup - it cannot be stressed enough how important it is to make a
backup of your system. A good backup plan allow you to recover from disk failure, accidental
file deletion, file corruption, or complete server destruction, including destruction of on-site
backups.

7 Upgrading
There are several ways to upgrade from one Ubuntu release to another. This section gives an
overview of the recommended upgrade method.

7.1 Upgrading with do-release-upgrade


The recommended way to upgrade a Server Edition installation is to use the do-release-upgrade
utility. Part of the update-manager-core package, it does not have any graphical dependencies
and is installed by default.
Debian based systems can also be upgraded by using apt-get dist-upgrade. However,
using do-release-upgrade is recommended because it has the ability to handle system con-
figuration changes sometimes needed between releases.
To upgrade to a newer release, from a terminal prompt enter:

> do - release - upgrade

It is also possible to use do-release-upgrade to upgrade to a development version of


Ubuntu. To accomplish this use the -d switch:

do - release - upgrade -d

Upgrading to a development release is not recommended for production environments.

42

Anda mungkin juga menyukai