Ubuntu ships with a number of graphical utilities to configure your network devices. This document is geared toward server administrators and will focus on managing your network on the command line.
Ethernet interfaces
Ethernet interfaces are identified by the system using predictable network interface names. These names can appear as eno1 or enp0s25. However, in some cases an interface may still use the kernel eth# style of naming.
Identify Ethernet interfaces
To quickly identify all available Ethernet interfaces, you can use the ip command as shown below.
ip a
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: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:16:3e:e2:52:42 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 10.102.66.200/24 brd 10.102.66.255 scope global dynamic eth0
valid_lft 3257sec preferred_lft 3257sec
inet6 fe80::216:3eff:fee2:5242/64 scope link
valid_lft forever preferred_lft forever
Another application that can help identify all network interfaces available to your system is the lshw
command. This command provides greater details around the hardware capabilities of specific adapters. In the example below, lshw
shows a single Ethernet interface with the logical name of eth4 along with bus information, driver details and all supported capabilities.
sudo lshw -class network
*-network
description: Ethernet interface
product: MT26448 [ConnectX EN 10GigE, PCIe 2.0 5GT/s]
vendor: Mellanox Technologies
physical id: 0
bus info: pci@0004:01:00.0
logical name: eth4
version: b0
serial: e4:1d:2d:67:83:56
slot: U78CB.001.WZS09KB-P1-C6-T1
size: 10Gbit/s
capacity: 10Gbit/s
width: 64 bits
clock: 33MHz
capabilities: pm vpd msix pciexpress bus_master cap_list ethernet physical fibre 10000bt-fd
configuration: autonegotiation=off broadcast=yes driver=mlx4_en driverversion=4.0-0 duplex=full firmware=2.9.1326 ip=192.168.1.1 latency=0 link=yes multicast=yes port=fibre speed=10Gbit/s
resources: iomemory:24000-23fff irq:481 memory:3fe200000000-3fe2000fffff memory:240000000000-240007ffffff
Ethernet Interface logical names
Interface logical names can also be configured via a Netplan configuration. If you would like control which interface receives a particular logical name use the match
and set-name
keys. The match
key is used to find an adapter based on some criteria like MAC address, driver, etc. The set-name
key can be used to change the device to the desired logical name.
network:
version: 2
renderer: networkd
ethernets:
eth_lan0:
dhcp4: true
match:
macaddress: 00:11:22:33:44:55
set-name: eth_lan0
Ethernet Interface settings
ethtool
is a program that displays and changes Ethernet card settings such as auto-negotiation, port speed, duplex mode, and Wake-on-LAN. The following is an example of how to view the supported features and configured settings of an Ethernet interface.
sudo ethtool eth4
Settings for eth4:
Supported ports: [ FIBRE ]
Supported link modes: 10000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: No
Supported FEC modes: Not reported
Advertised link modes: 10000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: 10000Mb/s
Duplex: Full
Port: FIBRE
PHYAD: 0
Transceiver: internal
Auto-negotiation: off
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000014 (20)
link ifdown
Link detected: yes
IP addressing
The following section describes the process of configuring your system’s IP address and default gateway needed for communicating on a local area network and the Internet.
Temporary IP address assignment
For temporary network configurations, you can use the ip
command which is also found on most other GNU/Linux operating systems. The ip
command allows you to configure settings which take effect immediately – however they are not persistent and will be lost after a reboot.
To temporarily configure an IP address, you can use the ip
command in the following manner. Modify the IP address and subnet mask to match your network requirements.
sudo ip addr add 10.102.66.200/24 dev enp0s25
The ip
can then be used to set the link up or down.
ip link set dev enp0s25 up
ip link set dev enp0s25 down
To verify the IP address configuration of enp0s25
, you can use the ip
command in the following manner:
ip address show dev enp0s25
10: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:16:3e:e2:52:42 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 10.102.66.200/24 brd 10.102.66.255 scope global dynamic eth0
valid_lft 2857sec preferred_lft 2857sec
inet6 fe80::216:3eff:fee2:5242/64 scope link
valid_lft forever preferred_lft forever6
To configure a default gateway, you can use the ip
command in the following manner. Modify the default gateway address to match your network requirements.
sudo ip route add default via 10.102.66.1
You can also use the ip
command to verify your default gateway configuration, as follows:
ip route show
default via 10.102.66.1 dev eth0 proto dhcp src 10.102.66.200 metric 100
10.102.66.0/24 dev eth0 proto kernel scope link src 10.102.66.200
10.102.66.1 dev eth0 proto dhcp scope link src 10.102.66.200 metric 100
If you require DNS for your temporary network configuration, you can add DNS server IP addresses in the file /etc/resolv.conf
. In general, editing /etc/resolv.conf
directly is not recommended, but this is a temporary and non-persistent configuration. The example below shows how to enter two DNS servers to /etc/resolv.conf
, which should be changed to servers appropriate for your network. A more lengthy description of the proper (persistent) way to do DNS client configuration is in a following section.
nameserver 8.8.8.8
nameserver 8.8.4.4
If you no longer need this configuration and wish to purge all IP configuration from an interface, you can use the ip
command with the flush option:
ip addr flush eth0
Note
Flushing the IP configuration using theip
command does not clear the contents of/etc/resolv.conf
. You must remove or modify those entries manually (or re-boot), which should also cause/etc/resolv.conf
, which is a symlink to/run/systemd/resolve/stub-resolv.conf
, to be re-written.
Dynamic IP address assignment (DHCP client)
To configure your server to use DHCP for dynamic address assignment, create a Netplan configuration in the file /etc/netplan/99_config.yaml
. The following example assumes you are configuring your first Ethernet interface identified as enp3s0
.
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: true
The configuration can then be applied using the netplan
command:
sudo netplan apply
Static IP address assignment
To configure your system to use static address assignment, create a netplan
configuration in the file /etc/netplan/99_config.yaml
. The example below assumes you are configuring your first Ethernet interface identified as eth0
. Change the addresses
, routes
, and nameservers
values to meet the requirements of your network.
network:
version: 2
renderer: networkd
ethernets:
eth0:
addresses:
- 10.10.10.2/24
routes:
- to: default
via: 10.10.10.1
nameservers:
search: [mydomain, otherdomain]
addresses: [10.10.10.1, 1.1.1.1]
The configuration can then be applied using the netplan
command.
sudo netplan apply
NOTE
netplan
in Ubuntu Bionic 18.04 LTS doesn’t understand the “to: default
” syntax to specify a default route, and should use the oldergateway4: 10.10.10.1
key instead of the wholeroutes:
block.
The loopback interface is identified by the system as lo
and has a default IP address of 127.0.0.1. It can be viewed using the ip
command.
ip address show lo
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
Name resolution
Name resolution (as it relates to IP networking) is the process of mapping hostnames to IP addresses, and vice-versa, making it easier to identify resources on a network. The following section will explain how to properly configure your system for name resolution using DNS and static hostname records.
DNS client configuration
Traditionally, the file /etc/resolv.conf
was a static configuration file that rarely needed to be changed, or it automatically changed via DCHP client hooks. systemd-resolved
handles nameserver configuration, and it should be interacted with through the systemd-resolve
command. Netplan configures systemd-resolved
to generate a list of nameservers and domains to put in /etc/resolv.conf
, which is a symlink:
/etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf
To configure the resolver, add the IP addresses of the appropriate nameservers for your network to the netplan
configuration file. You can also add optional DNS suffix search-lists to match your network domain names. The resulting file might look like the following:
network:
version: 2
renderer: networkd
ethernets:
enp0s25:
addresses:
- 192.168.0.100/24
routes:
- to: default
via: 192.168.0.1
nameservers:
search: [mydomain, otherdomain]
addresses: [1.1.1.1, 8.8.8.8, 4.4.4.4]
The search option can also be used with multiple domain names so that DNS queries will be appended in the order in which they are entered. For example, your network may have multiple sub-domains to search; a parent domain of example.com
, and two sub-domains, sales.example.com
and dev.example.com
.
If you have multiple domains you wish to search, your configuration might look like the following:
network:
version: 2
renderer: networkd
ethernets:
enp0s25:
addresses:
- 192.168.0.100/24
routes:
- to: default
via: 192.168.0.1
nameservers:
search: [example.com, sales.example.com, dev.example.com]
addresses: [1.1.1.1, 8.8.8.8, 4.4.4.4]
If you try to ping a host with the name server1
, your system will automatically query DNS for its Fully Qualified Domain Name (FQDN) in the following order:
-
server1.example.com
-
server1.sales.example.com
-
server1.dev.example.com
If no matches are found, the DNS server will provide a result of notfound and the DNS query will fail.
Static hostnames
Static hostnames are locally defined hostname-to-IP mappings located in the file /etc/hosts
. Entries in the hosts
file will have precedence over DNS by default. This means that if your system tries to resolve a hostname and it matches an entry in /etc/hosts
, it will not attempt to look up the record in DNS. In some configurations, especially when Internet access is not required, servers that communicate with a limited number of resources can be conveniently set to use static hostnames instead of DNS.
The following is an example of a hosts
file where a number of local servers have been identified by simple hostnames, aliases and their equivalent Fully Qualified Domain Names (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
Note
In this example, notice that each of the servers were given aliases in addition to their proper names and FQDN’s. Server1 has been mapped to the name vpn, server2 is referred to as mail, server3 as www, and server4 as file.
Name Service Switch (NSS) configuration
The order in which your system selects a method of resolving hostnames to IP addresses is controlled by the Name Service Switch (NSS) configuration file /etc/nsswitch.conf
. As mentioned in the previous section, typically static hostnames defined in the systems /etc/hosts
file have precedence over names resolved from DNS. The following is an example of the line responsible for this order of hostname lookups in the file /etc/nsswitch.conf
.
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
-
files
first tries to resolve static hostnames located in/etc/hosts
. -
mdns4_minimal
attempts to resolve the name using Multicast DNS. -
[NOTFOUND=return]
means that any response ofnotfound
by the precedingmdns4_minimal
process should be treated as authoritative and that the system should not try to continue hunting for an answer. -
dns
represents a legacy unicast DNS query. -
mdns4 represents a multicast DNS query.
To modify the order of these name resolution methods, you can simply change the hosts:
string to the value of your choosing. For example, if you prefer to use legacy unicast DNS versus multicast DNS, you can change the string in /etc/nsswitch.conf
as shown below:
hosts: files dns [NOTFOUND=return] mdns4_minimal mdns4
Bridging multiple interfaces
Bridging is a more advanced configuration, but is very useful in multiple scenarios. One scenario is setting up a bridge with multiple network interfaces, then using a firewall to filter traffic between two network segments. Another scenario is using bridge on a system with one interface to allow virtual machines direct access to the outside network. The following example covers the latter scenario:
Configure the bridge by editing your netplan
configuration found in /etc/netplan/
, entering the appropriate values for your physical interface and network:
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: no
bridges:
br0:
dhcp4: yes
interfaces:
- enp3s0
Now apply the configuration to enable the bridge:
sudo netplan apply
The new bridge interface should now be up and running. The brctl
provides useful information about the state of the bridge, controls which interfaces are part of the bridge, etc. See man brctl
for more information.
networkd-dispatcher for hook scripts
Users of the former ifupdown
may be familiar with using hook scripts (e.g., pre-up, post-up) in their interfaces file. Netplan configuration does not currently support hook scripts in its configuration definition.
Instead, to achieve this functionality with the networkd
renderer, users can use networkd-dispatcher. The package provides both users and packages with hook points when specific network states are reached, to aid in reacting to network state.
Note:
If you are on Desktop (not Ubuntu Server) the network is driven by Network Manager — in that case you need NM Dispatcher scripts instead.
The Netplan FAQ has a great table that compares event timings between ifupdown
/systemd-networkd
/network-manager
.
It is important to be aware that these hooks run asynchronously; i.e. they will not block transition into another state.
The Netplan FAQ also has an example on converting an old ifupdown
hook to networkd-dispatcher
.
Resources
-
The Ubuntu Wiki Network page has links to articles covering more advanced network configuration.
-
The Netplan website has additional examples and documentation.
-
The Netplan man page has more information on Netplan.
-
The systemd-resolved man page has more information on systemd-resolved service.
-
For more information on bridging see the netplan.io examples page
Configure Network Interface Using Command-Line
You can configure a network interface from the command line. You configure your network client hosts with the command line by using commands to change your current settings or by editing a number of system files.
Find Network Interface Card
When setting up your network you will need to know the network interface cards on your computer. The interface name of cards for different vendors may be different, which is why this step is needed.
ls /sys/class/net
This will list the interface names for all NICs on your computer. It will probably include eth0 (hardwired NIC), lo (loopback interface for the localhost), and something for your wireless card (like wifi0, or wlan0).
Configuring Static IP Address For Your Network Card
Configure a Static IP address by editing /etc/network/interfaces. Replace eth0 with your network interface card (see Find Network Interface Card).
sudo nano /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
For these settings to take effect you need to restart your networking services.
sudo /etc/init.d/networking restart
Setting up Second IP Address or Virtual IP Address
If you need to set up a second ip address you need to edit the /etc/network/interfaces.
sudo nano /etc/network/interfaces
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
You need to enter all the details like address,netmask,network,broadcast and gateways values.
For these new settings to take effect you need to restart networking services using the following command
sudo /etc/init.d/networking restart
Setting Your Hostname
The hostname command allows you to directly query, or set, the hostname from the command line.
You can see your current hostname with
sudo /bin/hostname
To set the hostname directly you can become root and run
sudo /bin/hostname newname
When your system boots it will automatically read the hostname from the file /etc/hostname
Setting up DNS
You can add hostname and IP addresses to the file /etc/hosts for static lookups.
To cause your machine to consult with a particular server for name lookups you simply add their addresses to /etc/resolv.conf.
For example a machine which should perform lookups from the DNS server at IP address 192.168.3.2 would have a resolv.conf file looking like this
sudo nano /etc/resolv.conf
enter the following details
search myaddress.com nameserver 192.168.3.2
Configuring DHCP Address for Your Network Card
The DHCP address can be configured by editing the following file /etc/network/interfaces. Replace eth0 with your interface card (see Find Network Interface Card).
sudo nano /etc/network/interfaces
# The primary network interface – use DHCP to find our address auto eth0 iface eth0 inet dhcp
Howto Set MTU for a DHCP Connection
Although this is not documented in the manual for interfaces, MTU for a DHCP connected device can be set in the /etc/network/interfaces file. To do so you need to append the ‘pre-up’ command to the ‘iface’ section of the relevent interface.
iface eth0 inet dhcp pre-up /sbin/ip link set $IFACE mtu 1492
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).
This tip was found on http://glasnost.beeznest.org/articles/290.
CategoryNetworking CategoryWireless
Содержание
Краткое описание руководства
В данном руководстве объясняется, как подключить компьютер к сети при помощи конфигурационных файлов и консольных утилит. Основная цель — рассказать о различных способах подключения к интернету без использования GUI (графического интерфейса). Руководство не затрагивает таких тем, как настройка сетевых фильтров или, например, собственных точек доступа Wi-Fi. Подразумевается, что существует некий, предоставленный провайдером, способ подключения к интернету, для использования которого и необходимо выполнить приведенные ниже действия.
В руководстве приведены примеры редактирования конфигурационных файлов с помощью текстовых редакторов «nano» и «gedit». Обратите внимание на то, что первый редактор запускается в терминале и может быть использован как при запуске Ubuntu с графическим интерфейсом, так и без него, а «gedit» можно использовать только при включенной графической среде.
Требования к системе
Для воспроизведения описанных в руководстве действий подходит любой вариант установки системы. Наличие графического пользовательского интерфейса не обязательно. Все действия необходимо выполнять в консоли. Подразумевается, что команды, начинающиеся с символа $ — необходимо выполнять от пользователя, а начинающиеся с # — от суперпользователя (root).
Прежде чем Вы начнете, убедитесь, что:
-
Различные сетевые утилиты, предназначенные для автоматического конфигурирования сети выключены. Например, тут Вы можете прочитать, как отключить установленный по умолчанию в Ubuntu сетевой помощник Network Manager.
-
Различные сетевые фильтры (например iptables), и утилиты их конфигурирования (например, Firestarter) отключены/правильно настроены и не вмешиваются в работу сети.
-
У Вас есть все необходимые параметры для подключения в Вашей сети (например, IP-адрес, маска подсети и шлюз по умолчанию для соединения с использованием статического IP).
-
Устройства сети осуществляющие фильтрацию по MAC-адресу правильно настроены и «знают» Ваш сетевой интерфейс.
-
Драйвер Вашего сетевого устройства корректно установлен, кабель (при проводном соединении) исправен и подсоединен.
Для настроек вам обязательно потребуется имя вашего сетевого адаптера. Его можно узнать из вывода команды:
$ sudo lshw -C network
Она позволяет посмотреть подключенные сетевые устройства.
Пример вывода команды:
ubuntu@ubuntu:~$ sudo lshw -C network *-network description: Ethernet interface # Тип устройства product: L2 100 Mbit Ethernet Adapter # Название адаптера vendor: Attansic Technology Corp. # Производитель устройства physical id: 0 bus info: pci@0000:03:00.0 logical name: eth0 # Имя сетевого интерфейса version: a0 serial: 00:00:00:00:00:00 # Физический адрес устройства (mac-адрес) size: 100MB/s capacity: 100MB/s width: 64 bits clock: 33MHz capabilities: pm msi pciexpress vpd bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd autonegotiation configuration: autonegotiation=on broadcast=yes driver=atl2 # Используемый драйвер driverversion=2.2.3 # Версия драйвера duplex=full firmware=L2 ip=192.168.0.5 latency=0 link=yes # Наличие линка module=atl2 multicast=yes port=twisted pair speed=100MB/s # Текущая скорость подключения.
Обратите внимание на строку:
logical name: eth0
eth0 — это и есть искомое имя сетевого интерфейса.
Имя eth0
будет далее применяться для настройки именно данной сетевой карты. Где eth
обозначает что используется Ethernet интерфейс, а 0
— номер устройства. Если у вас установлено несколько сетевых устройств, то, соответственно, им будут присвоены имена: eth0
, eth1
, eth2
и т.д.
После внедрения SystemD (начиная с Ubuntu 15.04) сетевые интерфейсы могут иметь другие имена (не ethX).
Сделано это для того, что бы имена сетевых устройств не менялись при подключении к машине новых адаптеров (в последнее время, некоторые USB модемы выступают в роли сетевого адаптера). В результате eth0 может называться например enp0s4 или eno1, или даже enx78e7d1ea46da. Именно это имя сетевого адаптера и нужно использовать в настройке сети.
Более подробно о наименовании сетевых интерфейсов в SystemD можно почитать тут (англ.).
Такое переименование можно отключить добавив в /etc/default/grub, в строку с переменной GRUB_CMDLINE_LINUX_DEFAULT строку net.ifnames=0. После этого нужно выполнить sudo update-grub
Настройка проводной сети
Настройка IP-адреса, шлюза по умолчанию, маски подсети
Отредактируйте файл конфигурации /etc/network/interfaces
, например так:
$ sudo nano /etc/network/interfaces
И допишите в него:
Для статического IP:
iface eth0 inet static address 192.168.0.1 netmask 255.255.255.0 gateway 192.168.0.254 dns-nameservers 192.168.0.254 8.8.8.8 auto eth0
Где:
-
iface eth0 inet static
— указывает, что интерфейс (iface eth0
) находится в диапазоне адресов IPv4 (inet
) со статическим ip (static
); -
address 192.168.0.1
— указывает что IP адрес (address) нашей сетевой карты 192.168.0.1; -
netmask 255.255.255.0
— указывает что наша маска подсети (netmask) имеет значение 255.255.255.0; -
gateway 192.168.0.254
— адрес шлюза (gateway
) по умолчанию 192.168.0.254; -
dns-nameservers 192.168.0.254 8.8.8.8
— адреса DNS серверов (о ниж мы расскажем позже) -
auto eth0
— указывет системе что интерфейсeth0
необходимо включать автоматически при загрузке системы с вышеуказанными параметрами.
eth0 — имя подключаемого своего интерфейса. Список интерфейсов можно посмотреть набрав:
$ ip addr
В итоге файл /etc/network/interfaces
должен выглядеть примерно так:
(для одного проводного соединения со статическим IP)
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # Моя проводная сеть. iface eth0 inet static address 192.168.0.1 netmask 255.255.255.0 gateway 192.168.0.254 dns-nameservers 192.168.0.254 8.8.8.8 auto eth0
Сохраните файл и закройте редактор. В данном примере (редактор nano) — нажмите Ctrl+X, затем Y, убедитесь, что «Имя файла для записи» — /etc/network/interfaces и нажмите Enter.
Более подробно про синтаксис файла /etc/network/interfaces
можно прочитать в документации.
Пример конфигурации для динамического IP:
iface eth0 inet dhcp auto eth0
Временная настройка IP-адреса и маски подсети
При необходимости задать пробные настройки, выполните:
$ sudo ip addr add 192.168.0.1/24 dev eth0
Где 192.168.0.1 — наш IP-адрес, /24 — число бит в префиксной части адреса (соответствует маске подсети 255.255.255.0).
eth0 — подключаемый сетевой интерфейс.
Данные настройки пропадут после перезагрузки системы и не повлияют на файл /etc/network/interfaces
Настройка DNS
За конфигурацию DNS отвечает утилита resolvconf, которая работает в паре с небольшим кеширующим DNS сервером dnsmasq. resolvconf позволяет осуществить настройку DNS на основе данных от разных подсистем.
Одним из следствий этого полезного нововведения (переход на эту схему произошел в Ubuntu начиная с версии 12.04) является то, что теперь файл /etc/resolv.conf генерируется автоматически, а не индивидуально каждой программой, которая хочет его изменить (порой перезаписывая правки сделанные ранее). Автоматическая генерация /etc/resolv.conf означает, что внесенные «руками» изменения в него будут потеряны.
Автоматически формируемый /etc/resolv.conf содержит ссылку на DNS сервер на локальном интерфейсе (127.0.1.1), а там (на 53 порту) и сидит сервис dnsmasq, который отвечает за разрешение символьных имен в IP адреса. Нужно отметить, что этот порт (53) открыт в режиме LISTEN, но т.к. это локальный интерфейс, то из внешней сети этот порт не доступен.
Информацию о DNS для статических интерфейсов теперь надо вносить в /etc/network/interfaces1) в параметры dns-nameservers, dns-search и dns-domain (которые соответствуют параметрам nameserver, search и domain в /etc/resolv.conf)
Обратите внимание — в /etc/resolv.conf, при записи нескольких серверов используется несколько ключей nameserver, а в /etc/network/interfaces все адреса DNS серверов записывались в одну строчку после ключа dns-nameservers, разделенные пробелами.
В итоге описание статического интерфейса в /etc/network/interfaces должно выглядеть примерно так:
iface eth0 inet static address 192.168.0.1 netmask 255.255.255.0 gateway 192.168.0.254 dns-nameservers 8.8.8.8 192.168.0.254 auto eth0
Ubuntu до версии 12.04
В более старых версиях ubuntu, когда есть необходимость указать статические адреса DNS серверов (если они не выдаются автоматически) выполните:
$ sudo gedit /etc/resolv.conf
и впишите туда адреса DNS серверов (отдельные записи для каждого сервера):
nameserver 192.168.0.100 nameserver 192.168.0.200
Где 192.168.0.100 и 192.168.0.200 — адреса DNS серверов. Если нужно добавить больше адресов — каждый адрес нужно начинать с новой строки и с фразы nameserver
Настройка соединений ppp
За создание соединений типа «точка-точка» в Ubuntu отвечает демон pppd
, более подробная информация о котором доступна в документации. В рамках данного руководства будут рассмотрены примеры создания PPPoE подключения через DSL модем, подключения PPTP (VPN-подключения) и DIAL-UP подключения через обычный модем.
Соединение PPPoE
В стандартную установку Ubuntu входит утилита для настройки PPPoE соединений – pppoeconf
, для ее запуска наберите:
$ sudo pppoeconf
Появится «псевдографическое» 2) окно в терминале. Утилита произведет поиск сетевых устройств и выведет их на экран, далее она произведет поиск модема 3) на этих устройствах. Если на этом этапе pppoeconf выдаст отрицательный результат — проверьте правильность подключения, питание модема. Следующий шаг — выбор «популярных параметров» — в большинстве случаев стоит согласиться. Далее утилита запросит Ваш логин, а затем — пароль. Теперь — выбор способа указания DNS серверов. Опять же, в большинстве случаев следует согласиться на получение адресов DNS серверов автоматически. Далее Вам предложат ограничить размер MSS до 1452-х байт — как правило, стоит согласиться. Следующий вопрос — устанавливать ли подключение автоматически при загрузке компьютера. Последний вопрос утилиты — установить ли соединение сейчас. pppoeconf
по умолчанию создает для подключения имя dsl-provider. Управлять подключением Вы можете при помощи команд:
$ sudo pon dsl-provider # Для подключения или $ sudo poff dsl-provider # Для отключения
Если в Вашем случае опций, предоставляемых утилитой pppoeconf
недостаточно — обратитесь к документации по pppd или pppoeconf.
Замечание: при настройке соединения с помощью pppoeconf
часть настроек записывается в /etc/network/interfaces
, в результате чего Network Manager больше не может управлять сетью. Выход: либо использовать только NM, либо только консоль+конфиги.
Вернуть управление Network Manager можно следующим образом. Приведите /etc/network/interfaces
к следующему виду (лишнее не обязательно удалять, достаточно закомментировать):
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback
Перезапустите сеть:
$ sudo /etc/init.d/networking restart
Перезагрузитесь или перезапустите Network Manager:
$ sudo /etc/init.d/NetworkManager restart
Соединение PPTP
Для осуществления VPN-соединения при помощи pppd Вам потребуется установить пакет pptp-linux
, который может быть найден на установочном диске Ubuntu. Далее создайте (от root’а) в папке /etc/ppp/peers
файл с названием Вашего провайдера и отредактируйте его, например так:
$ sudo nano /etc/ppp/peers/my-provider
И добавьте туда опции подключения, например такие:
persist # При разрыве соединения - переподключаться снова. maxfail 0 # Максимальное количество неудачных попыток подключения. 0 - бесконечно. mtu 1476 # Значение MTU name {логин} # Ваш логин. #nodefaultroute # Не быть шлюзом по умолчанию defaultroute # Быть шлюзом по умолчанию replacedefaultroute # Заменить шлюз по умолчанию если он был remotename {vpn} # Имя удаленного сервера (для нас), может быть любым. pty "pptp {адрес_сервера} --nolaunchpppd" # Команда запуска pptp. # Адрес сервера - может быть как IP адресом, так и доменным именем, например vpn.foo.bar
Далее — отредактируйте файл /etc/chap-secrets
4) и добавьте туда:
{логин} {vpn} {пароль}
После перезагрузки системы Вы сможете управлять соединением при помощи команд:
$ sudo pon my-provider # Для подключения или $ sudo poff my-provider # Для отключения
Процесс настройки VPN-соединения может сильно облегчить скрипт-помощник.
Настройка DIAL-UP подключения
Для настройки модемного соединения можно использовать встроенный конфигуратор pppd
— pppconfig
или специальную утилиту wvdial
.
При помощи pppconfig
Процесс настройки при помощи pppconfig
во многом похож на утилиту pppoeconfig
, Вам по очереди будут заданы вопросы о параметрах подключения, и будет предложено ввести номер телефона, логин и пароль, а также имя соединения. Запускать pppconfig следует с правами суперпользователя. Например так:
$ sudo pppconfig
Управлять соединением можно так:
$ sudo pon my-provider # Для подключения или $ sudo poff my-provider # Для отключения
Где my-provider — имя, присвоенное Вами соединению при настройке.
При помощи wvdial
В некоторых случаях (например при подключении с использованием мобильного телефона), удобнее использовать wvdial
. Для этого нужно его сначала установить. Например так:
$ sudo apt-get install wvdial
В состав пакета wvdial
входит утилита автоматического конфигурирования — wvdialconf
.
$ sudo wvdialconf
Вывод будет примерно следующим:
ubuntu@ubuntu:~$ sudo wvdialconf [sudo] password for ubuntu: Editing `/etc/wvdial.conf'. Scanning your serial ports for a modem. Modem Port Scan<*1>: S0 S1 S2 S3 WvModem<*1>: Cannot get information for serial port. ttyACM0<*1>: ATQ0 V1 E1 -- OK ttyACM0<*1>: ATQ0 V1 E1 Z -- OK ttyACM0<*1>: ATQ0 V1 E1 S0=0 -- OK ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK ttyACM0<*1>: Modem Identifier: ATI -- Manufacturer: QUALCOMM INCORPORATED ttyACM0<*1>: Speed 4800: AT -- OK ttyACM0<*1>: Speed 9600: AT -- OK ttyACM0<*1>: Speed 19200: AT -- OK ttyACM0<*1>: Speed 38400: AT -- OK ttyACM0<*1>: Speed 57600: AT -- OK ttyACM0<*1>: Speed 115200: AT -- OK ttyACM0<*1>: Speed 230400: AT -- OK ttyACM0<*1>: Speed 460800: AT -- OK ttyACM0<*1>: Max speed is 460800; that should be safe. ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK Found an USB modem on /dev/ttyACM0. Modem configuration written to /etc/wvdial.conf. ttyACM0<Info>: Speed 460800; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
Теперь остается только отредактировать файл /etc/wvdial.conf
и добавить в него номер телефона, логин и пароль.
$ sudo nano /etc/wvdial.conf
В данном примере я дополнительно добавил несколько опций. См. комментарии.
[Dialer Defaults] Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 Modem Type = USB Modem ISDN = 0 Idle Seconds = 0 New PPPD = yes Dial Attempts = 0 Phone = #777 Modem = /dev/ttyACM0 Username = mobile Password = internet Baud = 460800 Idle Seconds = 0 # Время простоя соединения, # после которого нужно будет его разорвать. Значение 0 - никогда. Dial Attempts = 0 # Количество попыток дозвона. 0 - бесконечно. [Dialer pulse] Dial Command = ATDP # Команда набора номера (P - импульсный, T - тональный). Имеет смысл для набора номера в импульсном режиме на старых АТС.
Файл /etc/wvdial.conf разбит на секции, в качестве разделителей которых выступают сами названия секций, предварённые словом Dialer, в квадратных скобках. Если исполнять команду без параметров, то в дело пойдут установки, перечисленные в секции Defaults. В противном случае дополнительно будут исполнены указанные в добавочных секциях команды.
Теперь, когда все настроено, соединение можно установить набрав:
$ sudo wvdial
Если потребуется запустить wvdial с набором номера в импульсном режиме, то это можно сделать командой
$ sudo wvdial pulse
Прервать соединение можно прервав выполнение команды wvdial
, т.е. в том же терминале нужно нажать Ctrl+C.
Автоматическое подключение
Отредактируйте файл конфигурации /etc/network/interfaces
, например так:
$ sudo nano /etc/network/interfaces
И допишите в него:
Для pppoe , pptp , и модемного подключения без использования wvdial
:
iface ppp0 inet ppp provider my-provider auto ppp0
Где my-provider — название вашего соединения.
При использовании wvdial
:
iface ppp0 inet wvdial provider wvdial auto ppp0
Теперь при перезапуске сетевых служб соединение будет автоматически установлено.
Ручная настройка роутинга
Если Вы не получаете адрес шлюза по-умолчанию от сервера, к которому подключаетесь, или по какой-либо иной причине Вам необходимо указать маршруты вручную — Вы можете создать свой скрипт в /etc/ppp/ip-up.d/
, либо по рекомендации официальной документации создать /etc/ppp/ip-up.local
например так:
$ sudo nano /etc/ppp/ip-up.local
или
$ sudo nano /etc/ppp/ip-up.d/routing
со следующим кодом:
#! /bin/sh # route del default route add default ppp0 # Имя ppp-подключения. # тут - необходимые маршруты, например: route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.1 dev eth0
Далее — сделайте этот скрипт исполняемым, например так:
$ sudo chmod ug+x /etc/ppp/ip-up.local
или
$ sudo chmod ug+x /etc/ppp/ip-up.d/routing
Теперь маршруты будут автоматически подключаться при установлении ppp-соединения.
Установка MTU и TTL
MTU (Maximum Transfer Unit) — параметр определяет величину максимальной единицы передачи.
Это максимальное количество октетов (байт), которое интерфейс способен поддерживать
за одну операцию приема/передачи. Для Ethernet это значение по умолчанию составляет
1500 (максимальный размер пакета Ethernet).
TTL (Time To Live) — время жизни ip-пакета в секундах. Нужен чтобы избежать перегрузки сети пакетами.
Обычно каждый роутер, через которого прошел пакет, уменьшает TTL на еденицу.
Если TTL=0, пакет из системы удаляется. Изначально TTL=128 (для Windows) и TTL=64 (для Ubuntu).
Для DNS-записей TTL определяет время актуальности данных при кешировании запросов.
Для изменения величины MTU, отредактируем файл конфигурации /etc/network/interfaces
, например так:
auto eth0 iface eth0 inet static address 192.168.1.5 netmask 255.255.255.0 mtu 600
Для изменения величины TTL наберите:
$ sudo su затем # echo "128" > /proc/sys/net/ipv4/ip_default_ttl
Значение TTL меняется только с правами администратора, для выхода из аккаунта администратора введите exit
Настройка WiFi
Настройка Wi-Fi при помощи wpa-supplicant и /etc/network/interfaces
В этой главе пойдет речь о настройке подключения к существующей Wi-Fi сети с использованием наиболее безопасного на сегодняшний день стандарта шифрования и аутентификации WPA2. Дополнительно приведены примеры настроек для менее безопасных соединений.
Если Вы можете повлиять на настройку точки доступа, например, в случае, если это Ваш домашний Wi-Fi роутер — постарайтесь настроить авторизацию с использованием WPA2, т.к. это наиболее безопасный протокол аутентификации в беспроводных сетях на настоящий момент.
Замечания
Дополнительно к требованиям, указанным выше Вам следует учесть, что:
-
После установки всех необходимых пакетов, кабель проводной сети лучше отсоединить.
-
Некоторые устройства (или их драйвера, например Madwifi) не поддерживают WPA2 (AES). Если соединение WPA2 установить не удается, можно попробовать WPA1 (TKIP).
-
Если у Вас RTxxx (Ralink) с драйверами Serialmonkey — этот способ Вам не поможет. Вам следует либо установить пакет
ndiswrapper
, заменяющий Serialmonkey, либо попробовать другой способ.
Подготовка
Установите пакеты wpa-supplicant
и wireless-tools
Например так:
$ sudo apt-get install wpasupplicant wireless-tools
Теперь убедитесь в том, что Ваше беспроводное устройство (в данном примере это «wlan0») работает и «видит» беспроводные сети. Команда
$ iwconfig
должна выдать примерно такой результат:
ubuntu@ubuntu:~$ iwconfig lo no wireless extensions. eth0 no wireless extensions. wmaster0 no wireless extensions. wlan0 IEEE 802.11bg ESSID:"" Mode:Managed Frequency:2.412 GHz Access Point: Not-Associated Tx-Power=27 dBm Retry min limit:7 RTS thr:off Fragment thr=2352 B Power Management:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
а доступные сети можно посмотреть командой
$ iwlist <имя интерфейса> scan
которая должна выдать примерно такой результат:
ubuntu@ubuntu:~$ iwlist wlan0 scan wlan0 Scan completed : Cell 01 - Address: 00:00:00:00:00:00 ESSID:"ubuntuessid" Mode:Master Channel:8 Frequency:2.447 GHz (Channel 8) Quality=7/100 Signal level:-99 dBm Noise level=-104 dBm Encryption key:on Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s 24 Mb/s; 36 Mb/s; 54 Mb/s; 6 Mb/s; 9 Mb/s 12 Mb/s; 48 Mb/s Extra:tsf=0000001d57e98bf6 Extra: Last beacon: 388ms ago
Бывает, что Ваше устройство Wi-Fi не включено по умолчанию, тогда команда вместо рапорта, приведенного выше выдаст
такое сообщение:
wlan0 Failed to read scan data : Network is down
Ничего страшного, просто введите команду
sudo ip link set dev wlan0 up
соответственно выключить устройство можно командой
sudo ip link set dev wlan0 down
Настройка
Редактируем /etc/network/interfaces
, например так:
$ sudo gedit /etc/network/interfaces
Удаляем (или комментируем) все упоминания нашего беспроводного интерфейса и добавляем свои:
iface wlan0 inet dhcp wpa-driver wext wpa-ssid <имя_точки_доступа> wpa-ap-scan 1 wpa-proto RSN wpa-pairwise CCMP wpa-group CCMP wpa-key-mgmt WPA-PSK wpa-psk <hex_ключ> [ВАЖНО - см. Генерация ключей] auto wlan0
Где:
Параметр | Описание |
---|---|
iface wlan0 inet dhcp | конфигурация для DHCP (для статического IP см. пример ниже) «iface wlan0» — Имя нашего интерфейса (wlan0, eth1, rausb0, ra0, итд.) |
wpa-driver | Это wpa-driver для нашей карты (‘wext’ — общий драйвер для linux, работающий с «ndiswrapper»). Рекомендуется оставить как есть. Другие варианты: hostap = Host AP driver (Intersil Prism2/2.5/3) atmel = ATMEL AT76C5XXx (USB, PCMCIA) wext = Linux wireless extensions (generic) madwifi = Atheros wired = wpa_supplicant wired Ethernet driver |
wpa-ssid | Имя нашей точки доступа (ESSID). Без кавычек. |
wpa-ap-scan | Параметр вещания точкой доступа ее имени. «1» = ESSID вещается всем. «2» = ESSID скрыт. |
wpa-proto | Протокол «RSN» = WPA(2) «WPA» = WPA(1) |
wpa-pairwise & wpa-group | «CCMP» = AES-шифрователь (как часть стандарта WPA(2)) «TKIP» = TKIP-шифрователь (как часть стандарта WPA(1)) |
wpa-key-mgmt | «WPA-PSK» = Аутентификация через ключевую фразу (см. ‘Cоздание ключей’) «WPA-EAP» = Аутентификация при помощи сервера аутентификаций. |
auto wlan0 | Автоматическое включение wlan0 при загрузке/перезагрузке сети. |
Генерация ключей
Теперь нам нужно сконвертировать нашу ключевую фразу (WPA ASCII) в hex-ключ:
$ wpa_passphrase <имя_точки_доступа> <ascii_ключ>
Результат будет примерно таким:
network={ ssid="test" #psk="12345678" psk=fe727aa8b64ac9b3f54c72432da14faed933ea511ecab1 5bbc6c52e7522f709a }
hex-ключ это все символы после «psk=».
Нужно его скопировать в буфер обмена и вставить в файл /etc/network/interfaces
в поле wpa-psk.
Теперь можно сохранить файл и перезагрузить сеть. Должно установиться соединение. Однако иногда этого сразу не происходит. Если это так — перезагружаем машину.
Дополнительно
Отключаем чтение файла /etc/network/interfaces
для others во избежания попадания пароля от сети к третьим лицам.
$ sudo chmod o=-r /etc/network/interfaces
Примеры конфигураций
WPA2 + статический IP, скрытый ESSID.
iface wlan0 inet static address 192.168.168.40 gateway 192.168.168.230 dns-nameservers 192.168.168.230 netmask 255.255.255.0 wpa-driver wext wpa-ssid <имя_точки_доступа> wpa-ap-scan 2 wpa-proto RSN wpa-pairwise CCMP wpa-group CCMP wpa-key-mgmt WPA-PSK wpa-psk <hex_ключ> [ВАЖНО - см. Генерация ключа] auto wlan0
WPA1 + DHCP, ESSID виден всем.
iface wlan0 inet dhcp wpa-driver wext wpa-ssid <имя_точки_доступа> wpa-ap-scan 1 wpa-proto WPA wpa-pairwise TKIP wpa-group TKIP wpa-key-mgmt WPA-PSK wpa-psk <hex_ключ> [ВАЖНО - см. Генерация ключа] auto wlan0
Смешанный режим (WPA1, WPA2) + DHCP, ESSID виден всем.
iface wlan0 inet dhcp wpa-driver wext wpa-ssid <имя_точки_доступа> wpa-ap-scan 1 wpa-proto WPA RSN wpa-pairwise TKIP CCMP wpa-group TKIP CCMP wpa-key-mgmt WPA-PSK wpa-psk <hex_ключ> [ВАЖНО - см. Генерация ключа] auto wlan0
LEAP, WEP, DHCP, ESSID виден всем.
iface wlan0 inet dhcp wpa-driver wext wpa-ssid <имя_точки_доступа> wpa-ap-scan 1 wpa-eap LEAP wpa-key-mgmt IEEE8021X wpa-identity <имя_пользователя> wpa-password <пароль> auto wlan0
PEAP, AES, DHCP, ESSID виден всем.
iface wlan0 inet dhcp wpa-driver wext wpa-ssid <имя_точки_доступа> wpa-ap-scan 1 wpa-proto RSN wpa-pairwise CCMP wpa-group CCMP wpa-eap PEAP wpa-key-mgmt WPA-EAP wpa-identity <наш_identity> wpa-password <пароль> auto wlan0
TTLS, WEP, DHCP, ESSID виден всем.
iface wlan0 inet dhcp wpa-driver wext wpa-ssid <имя_точки_доступа> wpa-ap-scan 1 wpa-eap TTLS wpa-key-mgmt IEEE8021X wpa-anonymous-identity <anonymous_identity> wpa-identity <наш_identity> wpa-password <наш_password> wpa-phase2 auth=PAP [Также: CHAP, MSCHAP, MSCHAPV2] auto wlan0
Другие способы работы Wi-Fi оборудования
При помощи Wi-Fi адаптера также возможно установить децентрализованную сеть ad-hoc или сделать из компьютера под управлением Ubuntu точку доступа. Поскольку описание данных способов Wi-Fi подключения выходит за рамки этого руководства — обратитесь к соответствующим разделам. Ссылки на эти разделы см. в разделе Cсылки.
Решение проблем
Не устанавливается соединение по Wi-Fi/Ethernet с точкой доступа/маршрутизатором
Симптомы: сеть обычно изначально работает нормально, долго или недолго, а затем неожиданно пропадает и не появляется после перезагрузки. Эта проблема может быть непостоянной. Сеть «сама собой» начинает работать, а затем пропадает вновь.
При перезапуске адаптера сети таким образом:
sudo ifdown wlan0 sudo ifup wlan0
будет выводиться в консоль похожий текст
Listening on LPF/wlan0/00-02-2A-E1-E0-6C Sending on LPF/wlan0/00-02-2A-E1-E0-6C Sending on Socket/fallback DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 8 DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 8 DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 15 No DHCPOFFERS received. No working leases in persistent database - sleeping.
Причиной проблемы может быть то, что материнская плата полностью не обесточивается при выключении компьютера. При этом вероятно не обесточивается и некоторое периферийное оборудование, в т.ч. могут не обесточиваться usb порты. Если вы используете, например, Wi-Fi usb-адаптер, то в таком случае можно заметить горящий на адаптере светодиод (если он им оборудован). Вероятно проблема возникает из-за того, что сетевое оборудование в этом режиме работает не совсем корректно.
Простое решение проблемы состоит в выключении компьютера и выдергивании кабеля питания из розетки с последующим подключением шнура питания и включением компьютера.
Сложное решение проблемы состоит в настройке параметров BIOS-а на полное обесточиваение сетевого оборудования при выключении компьютера.
Иногда наглухо пропадает соединение по Wi-Fi с точкой доступа/маршрутизатором
Симптомы: сеть изначально работает, а затем после перезагрузки точки доступа/маршрутизатора неожиданно пропадает, и не появляется ни после перезагрузки, ни после танцев с бубном. При этом беспроводной адаптер в упор не видит точку доступа (хотя она может стоять рядом с компьютером), но прекрасно видит все соседские сети. Затем после ~дцатой~ перезагрузки маршрутизатора сеть сама собой появляется вновь.
Причиной проблемы может быть то, что некоторые маршрутизаторы произвольно выбирают номер рабочего канала, игнорируя номер канала выбранный в настройках маршрутизатора. Если в файле /etc/network/interfaces номер канала для беспроводного интерфейса указан, то вероятно проблема состоит именно в этом. Номер 6 канала указывается в файле примерно так:
auto wlan0 ... wireless-channel 6
Простое решение проблемы состоит в комментировании этого параметра, чтобы адаптер не был ограничен только этим каналом, и перезапуске сети
auto wlan0 ... #wireless-channel 6
Сложное решение проблемы состоит в регистрации бага на сайте производителя маршрутизатора (прошивки для него) и обновление прошивки маршрутизатора после (в случае) его исправления.
Перезапуск сети
Теперь, когда все необходимые действия выполнены, можно перезапустить сеть и проверить соединение. Для этого:
$ sudo /etc/init.d/networking restart
Теперь, при запуске команды ip addr
должно отобразиться подключение eth0 с выставленными параметрами.
Если подключение отображается, но параметры не такие, какие были указаны в файле /etc/network/interfaces
, либо возникают любые другие ошибки, перепроверьте этот файл на наличие неточностей и опечаток и попробуйте ещё раз перезапустить сеть.
FAQ по сетям
Как зайти на мой компьютер извне (через интернет)?
Для начала надо узнать, какой IP-адрес даёт провайдер — серый или белый (не путать со статическим/динамическим). Если серый, то ничего не получится. Если белый, то возможны два варианта:
-
Роутера нет или он работает в режиме бриджа (моста). В этом случае белый IP-адрес присваивается самому компьютеру. Вводим адрес — попадаем на комп, всё просто.
-
Белый адрес присваивается роутеру. Соответственно, по этому адресу мы попадаем на роутер, а не на компьютер. Чтобы попасть на компьютер, на роутере нужно пробросить порты (см. ниже).
Мне кажется, у меня слишком медленно работает сеть!
Измерьте скорость сети между двумя компьютера с помощью iperf
. Можно воспользоваться этой инструкцией. В ней предлагают скомпиллировать программу из исходников, но можно просто установить её из репозитория. Если iperf
покажет значение немного меньшее, чем ожидаемое, то с сетью всё в порядке, проблема может быть в железе (жёсткий диск/процессор не могут обеспечить большую скорость), в способе передачи (например, scp
и ftp
весьма неторопливы), в настройках (скорость может быть ограничена, например, настройками FTP-сервера) или в чём-то ещё. Если iperf
показал величину, которая в разы меньше желаемой, то да — с сетью проблемы. Стоит посмотреть, в нужном ли режиме работает карта (например, с помощью ethtool
), проверить наличие «errors» в выводе ifconfig
и протестировать скорость подключения к какому-нибудь третьему компьютеру.
Как узнать, какие программы слушают порты на моём компьютере?
Чтобы посмотреть список открытых портов и названия слушающих их программ, используйте команду:
sudo netstat -nlpA inet,inet6
Для вывода информации о конкретном порте можно использовать grep
. Например, для 80 порта:
sudo netstat -nlpA inet,inet6 | grep :80
Из вывода netstat
не всегда понятно, о какой программе идёт речь (например, 2671/python), подробнее о процессе расскажет ps
:
ps aux | grep 2671
Как присвоить два IP-адреса одной сетевой карте?
Например, интерфейсу eth0 нужно добавить адрес 192.168.1.1.
Кратковременно, до перезапуска сети:
sudo ip addr add 192.168.1.1/24 dev eth0
Навсегда — добавить в /etc/network/interfaces
следующее:
#исправить строку auto auto eth0 eth0:1 # добавить алиас iface eth0:1 inet static address 192.168.1.1 netmask 255.255.255.0
Как пробросить порт?
Например, нужно пробросить порт 8081. Адрес, на который обращается клиент, назовём внешний_ip, а адрес, на который он должен попасть — внутренний_ip.
iptables -t nat -A PREROUTING -p tcp -d внешний_ір --dport 8081 -j DNAT --to-destination внутренний_ір:8081 iptables -t nat -A POSTROUTING -p tcp --dst внутренний_ір --dport 8081 -j SNAT --to-source внешний_ір
И обязательно нужно что-то вроде
iptables -t filter -A FORWARD -m conntrack --ctstate DNAT -j ACCEPT
Ссылки
As a sysadmin, you’ll often deal with IP address configuration. Changing the IP address is one of the common IP configuration tasks.
While the IP addresses on most systems are configured automatically, you may need to change them manually in some cases.
In this article, you’ll see various ways to change the IP address in Linux. I’ll also focus on Ubuntu network configuration separately.
Before you proceed any further, you should run this command to check your current IP address:
ip a
This will also show the interface name which you’ll need while changing the IP address.
Using the ip Command to Set an IP Address
The ip
command is available on most Linux distributions.
For setting an IP address, use it like this:
ip addr add [ip_address] dev [interface]
For example, add an IP address to the eth1 interface as:
sudo ip addr add 192.168.56.21/24 dev eth1
You now have two IP addresses: one from the old configuration and one from the new command:
As you can see in the above screenshot, after deleting the old one, you are left with only one.
Making an IP Address Permanent
Surprisingly, the IP addresses set by the above method are not going to persist in system reboots.
If you are using an old version of Ubuntu(<17.10), you can make these changes permanent by editing the file ‘/etc/network/interfaces’:
sudo nano /etc/network/interfaces
If your file read like the below, your IP address will be set by a DHCP client:
auto eth0
iface eth0 inet dhcp
To change the IP address as per our choice, we can modify this file to manually set the IP address. To set the IP address statically, for e.g. as 192.168.56.20, change the above entry to look as:
auto enp0s3
iface enp0s3 inet static
address 192.168.56.20
netmask 255.255.255.0
gateway 192.168.40.31
The entries above are self-explanatory for moderate Linux users. To apply the changes, you need to run the command:
$ sudo systemctl restart networking.service
Tip: On RedHat-based systems, the file ‘/etc/sysconfig/networking-scripts/ifcfg-*’ serves the purpose of configuring network interfaces.
Using Netplan for Network configuration (for Ubuntu)
Ubuntu provides a Netplan utility for network configuration.
Let us take an example of configuring an IP address on Ubuntu 20.04. I am using ‘NetworkManager’ as the renderer for the network configuration.
The current IP address can be checked from the Netplan configuration file. This file is in YAML format and can be created if not present:
sudo nano /etc/netplan/config.yaml
If the IP address is dynamic, you will see the ‘dhcp4’ parameter set to true.
In case, you have a pre-configured static IP, the configuration will look much like this:
---
network:
version: 2
renderer: networkd
ethernets:
eth1:
addresses:
- 192.168.56.66/24
nameservers:
addresses:
- 8.8.8.8
routes:
- to: default
via: 10.0.2.2
To change the IP address, replace the old IP address with a new one. Additionally, you can keep this IP and add one more to the above interface (en01).
Once you have configured the network, pre-test it before applying:
sudo netplan try
After confirming the changes, the new configuration can be applied as:
sudo netplan apply
Check if the new settings have been applied:
One of the advantages of using Netplan is that the network configuration will persist between reboots. Your IP address change is permanent.
Using Graphical Interface to Change the System IP Address (for Desktop Users)
Managing IP addresses with a graphical interface is the easiest one and preferable for new Linux users. On a Ubuntu system, the Network settings contain all the required configurations.
Open ‘Settings’ from the GNOME dashboard and look for the ‘Network’ option:
Choose the setting icon from the active network on your system:
On the new window, select the IPv4 tab and then under the IPv4 method, choose the Manual option. Enter the details for the new IP address:
Now restart your connection and check the IP address:
As you can see from the above screenshot, the IP address has now changed.
Wrapping Up
The ip command is suitable for all Linux systems. Netplan is a new way of managing a network and is a very straightforward approach for Ubuntu systems.
I also added steps for the desktop users to help them change the IP address graphically.
Let me know if you have any questions or suggestions.
Team LHB indicates the effort of a single or multiple members of the core Linux Handbook team.
По умолчанию в большинстве дистрибутивов Linux, ip адрес устанавливается автоматически, по протоколу DHCP, независимо от того какой тип соединения используется, будь то проводной интернет или беспроводное подключение к точке доступа Wifi или даже USB модем. Но если необходимо вы можете задать ip адрес Linux вручную. Это может понадобиться если вы хотите использовать статический ip адрес чтобы сеть запускалась быстрее при старте системы.
Есть несколько способов ручной настройки ip адреса в системе Linux, все можно сделать с помощью терминала или в графическом интерфейсе. Мы будем рассматривать только ipv4 адреса, и поговорим о том, как настроить статический ip, который будет присваиваться сетевому интерфейсу автоматически, а также как установить ip для сетевого интерфейса с помощью утилиты ip.
Вы не можете установить любой IP для своего компьютера. Есть определенный диапазон значений, которые можно использовать. Ваш новый ip адрес должен быть в той же сети, что IP адрес роутера, который представляет из себя шлюз в сеть. Также, если вы задаете IP вручную, то нужно указать и другие параметры, которые система раньше получала по DHCP. И перед тем как переходить к настройке давайте рассмотрим откуда взять эти данные.
Обычно, в локальных сетях адрес находится в одном из следующих диапазонов:
- 10.0.0.0 – 10.255.255.255
- 172.16.0.0 – 172.31.255.255
- 192.168.0.0 – 192.168.255.255
Они все зарезервированы для локальных сетей и их использование не должно вызвать конфликтов с общим интернетом, таким образом сначала надо узнать адрес шлюза. Но со шлюзом все немного сложнее. Это ваш маршрутизатор. Очень важно указать шлюз правильно, иначе компьютер не сможет получить доступ к сети. Посмотреть текущий адрес шлюза можно командой:
ip route show match 0/0
Здесь мы видим, что наш адрес шлюза — 192.168.0.1. Отсюда выплывает, что нам нужно выбирать наш ip именно из этого диапазона, можно менять только последнюю цифру и надо, чтобы в этой сети компьютеров с такими адресами больше не было, например, 192.168.0.64.
Маска подсети используется чтобы отделить локальную часть ip адреса, которая меняется, от статической. Сейчас в большинстве случаев применяется значение 255.255.255.0, которое означает изменение только последней цифры. Теперь, когда вы знаете откуда брать все значения, рассмотрим как установить ip адрес Linux.
Настройка ip адреса в Ubuntu
Настройкой сети в Ubuntu по умолчанию занимается специальная служба networking, конфигурация которой находятся в файле /etc/network/interfaces. Стандартные настройки с использованием динамического получения ip адреса по DHCP выглядят следующим образом:
В этом примере настраиваются два интерфейса, lo и eth0. Нас будет интересовать только строчка, касающаяся проводного соединения eth0, она тут одна:
iface eth0 inet dhcp
Отредактируйте конфигурацию как показано ниже, нужно закомментировать строчку получения ip по DHCP и добавить вместо нее настройку статического ip адреса, подсети, и шлюза:
sudo vi /etc/network/interfaces
auto lo
iface lo inet loopback
# iface enp24s0 inet dhcp
auto enp24s0
iface enp24s0 inet static
address 192.168.0.65
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 8.8.8.8,8.8.4.4
Более подробно настройка сети Ubuntu через терминал описана в отдельной статье. Настройте параметры в соответствии с вашими параметрами сети. Затем перезапустите сетевые службы чтобы изменения вступили в силу без перезагрузки компьютера:
sudo systemctl restart networking
Чтобы убедиться что все установлено правильно используйте утилиту ip.
ip addr list | grep enp24s0
Настройка IP адреса в CentOS
В системах, основанных на дистрибутиве RedHat, файлы настройки сети немного отличаются. Тут за начальную настройку сети отвечает фреймворк Wiched. Настройки получения IP адреса хранятся отдельно для каждого сетевого интерфейса в файлах /etc/sysconfig/network-scripts/ifcfg-имя_интерфейса, например, enp2s0. Настройки статического ip для сетевого адаптера с адресом enp2s0 будут выглядеть следующим образом:
sudo vi /etc/sysconfig/network-scripts/ifcfg-enp2s0
DEVICE="enp2s0"
BOOTPROTO="static"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
IPADDR=192.168.0.65
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1="8.8.8.8"
Чтобы изменения вступили в силу перезапускаем сеть:
sudo systemctl restart networking
Готово, настройка ip адреса linux с помощью стандартных средств системы завершена и вы можете дальше использовать свой компьютер.
Настройка статического IP адреса в nmcli
Сетевой конфигуратор NetworkManager сейчас используется практически повсеместно. Если нужно настроить IP в терминале вы можете использовать утилиту nmcli. Сначала смотрим доступные подключения. Для этого выполните:
nmcli connection
Допустим, что необходимое вам подключение называется Проводное соединение 2. Тогда осталось установить IP адрес, шлюз и DNS сервер:
nmcli con mod "Проводное соединение 2" ipv4.addresses 192.168.1.64/24
nmcli con mod "Проводное соединение 2" ipv4.gateway 192.168.1.1
nmcli con mod "Проводное соединение 2" ipv4.dns "8.8.8.8"
Затем надо сообщить утилите, что IP адрес будет настраиваться вручную:
nmcli con mod "Проводное соединение 2" ipv4.method manual
В этом примере IP адрес задается немного по другому. Сначала идёт выбранный ip адрес, а затем маска в формате /24. Это аналог записи 255.255.255.0, только короче.
Настройка IP в графическом интерфейсе
Разберемся ещё как изменить IP адрес через графический интерфейс. Для этого кликните по значку сети в правом верхнем углу экрана, затем выберите любое сетевое подключение и кликните по пункту Параметры соединения:
В открывшемся окне параметров нажмите значок шестеренки напротив нужного соединения, например, Проводное:
Перейдите на вкладку IPv4 и напротив пункта Метод IPv4 выберите Вручную. Появится несколько полей, которые надо заполнить. Заполните IP адрес, маску и шлюз:
Затем чуть ниже пропишите DNS. Когда всё будет готово нажмите кнопку Применить.
Настройка IP адреса с помощью утилиты ip
Если вам не нужно настраивать статический ip при загрузке, а необходимо только один раз задать ip адрес linux через терминал, то можно использовать утилиту ip. Включите интерфейс, если он выключен:
sudo ip link set eth0 up
Сначала нужно изменить IP и маску сети:
sudo ip addr add 192.168.0.65/255.255.255.0 dev eth0
Затем добавить шлюз:
sudo ip route add default via 192.168.0.1
Готово, теперь ваша сеть должна работать. Только эти настройки будут работать до первой перезагрузки.
Выводы
Вот и все. В этой статье мы рассмотрели как выполняется настройка ip адреса linux. Все это может показаться сложным, но если хорошо разобраться, то смена ip linux уже не будет вызывать таких проблем. Если у вас остались вопросы, спрашивайте в комментариях!
На завершение, видео о том что значат цифры ip адреса и зачем они нужны:
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .
Будучи системным администратором, вы часто сталкиваетесь с конфигурацией IP-адресов.
Изменение IP-адреса является одной из распространенных задач настройки IP-адресов.
Хотя IP-адреса в большинстве систем настраиваются автоматически, в некоторых случаях вам может понадобиться изменить их вручную.
В этой статье вы увидите различные способы изменения IP-адреса в Linux.
Я также отдельно остановлюсь на сетевой конфигурации Ubuntu.
🖧 Основные номера сетевых портов на Linux
Прежде чем продолжить, выполните эту команду, чтобы проверить текущий IP-адрес:
ip a
Здесь также будет показано имя интерфейса, которое понадобится при изменении IP-адреса.
Использование команды ip для установки IP-адреса
Команда ip доступна в большинстве дистрибутивов Linux.
Для установки IP-адреса используйте ее следующим образом:
ip addr add [ip_address] dev [interface]
Например, добавьте IP-адрес к интерфейсу eth1 следующим образом:
sudo ip addr add 192.168.56.21/24 dev eth1
Теперь у вас есть два IP-адреса: один из старой конфигурации и один из новой команды.
Как сделать IP-адрес постоянным
Удивительно, но IP-адреса, установленные вышеописанным способом, не сохраняются при перезагрузке системы.
🖧 Использование команд ifup, ifdown и ifquery на Linux
Если вы используете старую версию Ubuntu (<17.10), вы можете сделать эти изменения постоянными, отредактировав файл ‘/etc/network/interfaces’:
sudo nano /etc/network/interfaces
Если ваш файл выглядит так, как показано ниже, ваш IP-адрес будет установлен клиентом DHCP:
auto eth0
iface eth0 inet dhcp
Чтобы изменить IP-адрес по своему усмотрению, мы можем изменить этот файл для ручной установки IP-адреса.
Чтобы установить IP-адрес статически, например, как 192.168.56.20, измените приведенную выше запись следующим образом:
auto enp0s3
iface enp0s3 inet static
address 192.168.56.20
netmask 255.255.255.0
gateway 192.168.40.31
Приведенные выше записи не требуют пояснений для уверенных пользователей Linux.
Чтобы применить изменения, необходимо выполнить команду:
$ sudo systemctl restart networking.service
Совет: В системах на базе RedHat файл ‘/etc/sysconfig/networking-scripts/ifcfg-*’ служит для настройки сетевых интерфейсов.
Использование Netplan для конфигурации сети (для Ubuntu)
Ubuntu предоставляет утилиту Netplan для настройки сети.
Давайте рассмотрим пример настройки IP-адреса на Ubuntu 20.04.
Я использую ‘NetworkManager’ в качестве визуализатора для конфигурации сети.
Текущий IP-адрес можно проверить из файла конфигурации Netplan.
Этот файл имеет формат YAML и может быть создан, если его нет:
sudo nano /etc/netplan/config.yaml
Если IP-адрес динамический, вы увидите, что параметр ‘dhcp4’ установлен на true.
В случае, если у вас предварительно настроен статический IP, конфигурация будет выглядеть следующим образом:
---
network:
version: 2
renderer: networkd
ethernets:
eth1:
addresses:
- 192.168.56.66/24
nameservers:
addresses:
- 8.8.8.8
routes:
- to: default
via: 10.0.2.2
Чтобы изменить IP-адрес, замените старый IP-адрес на новый.
Кроме того, вы можете оставить этот IP и добавить еще один к указанному выше интерфейсу (en01).
После того как вы настроили сеть, предварительно протестируйте ее перед применением:
sudo netplan try
После подтверждения изменений новая конфигурация может быть применена как:
sudo netplan apply
Проверьте, были ли применены новые настройки:
ip addr show
Одним из преимуществ использования Netplan является то, что конфигурация сети будет сохраняться после перезагрузки.
Изменение вашего IP-адреса будет постоянным.
Заключение
Команда ip подходит для всех систем Linux.
Netplan – это новый способ управления сетью и очень простой подход для систем Ubuntu.
Я также добавил шаги для пользователей настольных систем, чтобы помочь им изменить IP-адрес графически.
Дайте мне знать, если у вас есть какие-либо вопросы или предложения.
см. также:
- 🐳 Как изменить IP-адрес по умолчанию для Docker Bridge
- 🐧 Как изменить цвет вывода команд в системах Linux
- 🖧 Как отключить / включить IP форвардинг на Linux
- 🐳 Как изменить сохранение истории задач в кластере Docker Swarm
- 🐧 Как изменить количество зарезервированных блоков файловой системы
- 🚦 Как изменить имена сетевых интерфейсов на схему eth0 в Debian 10/9
- 💆♀️ Четыре метода проверки IP-адреса шлюза или маршрутизатора по умолчанию в Linux
I am posting this answer to give another dimension to the question and existing answers, not as a direct answer to the original question. Your IP will be lost at reboot. However, I think it’s worth you understanding these commands, iproute2
package is the currently method of on-the-fly interface management via the CLI. Lots of people are still writing scripts using ifconfig
for example.
I think it’s worth noting the use of the iproute2
packages;
Show current IPs on all interface (ip addr
)
n2:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link/ether 00:e0:4c:6d:0a:49 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 74:ea:3a:ad:2e:00 brd ff:ff:ff:ff:ff:ff
inet 172.22.0.221/24 brd 172.22.0.255 scope global wlan0
inet6 fe80::76ea:3aff:fead:2e00/64 scope link
valid_lft forever preferred_lft forever
Add an IP address to my wireless interface (ip addr add
)
n2:~$ sudo ip a a 10.0.0.56/24 dev wlan0
[sudo] password for bensley:
Show my IP addresses again, note the additional IP on wlan0 (ip addr
)
n2:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link/ether 00:e0:4c:6d:0a:49 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 74:ea:3a:ad:2e:00 brd ff:ff:ff:ff:ff:ff
inet 172.22.0.221/24 brd 172.22.0.255 scope global wlan0
inet 10.0.0.56/24 scope global wlan0
inet6 fe80::76ea:3aff:fead:2e00/64 scope link
valid_lft forever preferred_lft forever
Show the link state of my interfaces (ip link
)
n2:~$ ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00: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:e0:4c:6d:0a:49 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 74:ea:3a:ad:2e:00 brd ff:ff:ff:ff:ff:ff
Delete this 2nd IP address from my wireless interface (ip addr delete
)
n2:~$ sudo ip a del 10.0.0.56/24 dev wlan0
Show IP addresses just for wlan0 to check (ip addr show wlan0
)
n2:~$ ip a s wlan0
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 74:ea:3a:ad:2e:00 brd ff:ff:ff:ff:ff:ff
inet 172.22.0.221/24 brd 172.22.0.255 scope global wlan0
inet6 fe80::76ea:3aff:fead:2e00/64 scope link
valid_lft forever preferred_lft forever
The same commands could have been used to remove my current IP, 172.22.0.221 then add another, but I would have lost connectivity, which I can’t right now. Below are those commands though, after which I would also need to add a new default route route;
n2:~$ ip r s
default via 172.22.0.1 dev wlan0 proto static
169.254.0.0/16 dev wlan0 scope link metric 1000
172.22.0.0/24 dev wlan0 proto kernel scope link src 172.22.0.221 metric 2
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
ip a del 172.22.0.221/24 dev wlan0
ip a a 172.22.0.10/24 dev wlan
ip r a default via 172.22.0.1
# Re-add the same default route ^ via the same default gateway
Download Article
Download Article
- Debian, Ubuntu, & Linux Mint
- Red Hat, CentOS, & Fedora
- Video
- Tips
- Warnings
|
|
|
|
This wikiHow teaches you how to assign a new IP address to your computer when using Linux. Doing so can prevent connection issues for the item in question.
-
1
Verify your Linux version. Popular Debian-based Linux distributions include Ubuntu, Mint, and Raspbian versions.
-
2
Open Terminal. This is the command line app that’s the basis of all Linux distributions. Depending on your Linux version, you may have several ways of opening Terminal:
- Press Ctrl+Alt+T or Ctrl+Alt+F1 (if you’re on a Mac, substitute the ⌘ Command key for Ctrl.
- Click the text box at the top or bottom of the screen if possible.
- Open the Menu window and find the «Terminal» application, then click on it.
Advertisement
-
3
Switch to root. If you aren’t already logged into the «root» user directory, type in su and press ↵ Enter, then type in your root user password when prompted and press ↵ Enter.
- A «root» account is the Linux equivalent of an Administrator account on a Windows or Mac computer.
-
4
Bring up a list of your current Internet items. Type in ifconfig and press ↵ Enter to do so. You should see a list of item names appear on the left side of the window with their details listed on the right.
- The top item should be your current router or Ethernet connection. This item’s name is «eth0» (Ethernet) or «wifi0» (Wi-Fi) in Linux.
-
5
Find the item to which you want to assign an IP address. Note the name of the item that you want to change. You’ll find the name on the left side of the window.
- In most cases, this is the «eth0» or «wifi0» item.
-
6
Change the item’s IP address. Type in sudo ifconfig name ipaddress netmask 255.255.255.0 up—making sure to replace name with your item’s name and ipaddress with your preferred IP address—and press ↵ Enter.
- To assign an IP of «192.168.2.100» to your ethernet connection («eth0»), for example, you’d enter sudo ifconfig eth0 192.168.0.100 netmask 255.255.255.0 here.
-
7
Assign a default gateway. Type in route add default gw 192.168.1.1 and press ↵ Enter.[1]
-
8
Add a DNS server. Type in echo "nameserver 8.8.8.8" > /etc/resolv.conf and press ↵ Enter.
- If you have a different DNS server address that you would rather use, enter that in the place of 8.8.8.8.
-
9
Check your item’s new IP address. Enter the ifconfig command again, find your item, and look at the address to the right of the item’s name. You should see the IP address that you just assigned.
Advertisement
-
1
Verify your Linux version. Popular RPM-based Linux distributions include CentOS, Red Hat, and Fedora versions.
-
2
Open Terminal. This is the command line app that’s the basis of all Linux distributions. Depending on your Linux version, you may have several ways of opening Terminal:
- Press Ctrl+Alt+T or Ctrl+Alt+F1 (if you’re on a Mac, substitute the ⌘ Command key for Ctrl.
- Click the text box at the top or bottom of the screen if possible.
- Open the Menu window and find the «Terminal» application, then click on it.
-
3
Switch to root. If you aren’t already logged into the «root» user directory, type in su and press ↵ Enter, then type in your root user password when prompted and press ↵ Enter.
- A «root» account is the Linux equivalent of an Administrator account on a Windows or Mac computer.
-
4
Bring up a list of your current Internet items. Type in ip a to view your network connections.
-
5
Find the network connection that you want to change. This will normally be the Ethernet or Wi-Fi connection, which has an IP address currently listed on the right side of the window.
-
6
Switch to the network scripts directory. Type in cd /etc/sysconfig/network-scripts and press ↵ Enter.
-
7
Display the network options. Type in ls and press ↵ Enter. You should see your current connection’s name in the upper-left side of the network option results.
-
8
Open the network options for your connection. Type in vi ifcfg-network name and press ↵ Enter. Doing so will open the network’s properties in your Vi editor.
- For a network named «eno12345678», for example, you’d enter vi ifcfg-eno12345678 here.
-
9
Edit the network’s information. Change the following values:
- BOOTPROTO — Change dhcp to none
- Any IPV6 entry — Delete any IPV6 entries entirely by moving the cursor to the I on the left and pressing Del.
- ONBOOT — Change no to yes
-
10
Enter a new IP category. Press ↵ Enter to jump down one line from the ONBOOT category, type in
IPADDR=
and enter the IP address that you want to use, and then press ↵ Enter.- For example: to use «192.168.2.23» as your IP address, you’d type in
IPADDR=192.168.2.23
and press ↵ Enter.
- For example: to use «192.168.2.23» as your IP address, you’d type in
-
11
Enter netmask, gateway, and DNS information. To do so:[2]
- Type in
PREFIX=24
and press ↵ Enter. You can also enterNETMASK=255.255.255.0
here. - Type in
GATEWAY=192.168.2.1
and press ↵ Enter. Substitute your preferred gateway address if different.
- Type in
-
12
Save and exit the file. You can use the File menu to do this, or you can type in :wq and press ↵ Enter.
Advertisement
Ask a Question
200 characters left
Include your email address to get a message when this question is answered.
Submit
Advertisement
Video
-
Some very specific Linux distributions will require you to go through a different process to assign an IP address. To see your specific distribution’s specifications, check online.
Thanks for submitting a tip for review!
Advertisement
-
Don’t forget to switch back to the regular (non-root) user account when you’re done.
Advertisement
About This Article
Thanks to all authors for creating a page that has been read 686,239 times.