- Основы настройки сети в Linux
- Настройка сети с помощью Iproute2
- Как установить статический IP
- Включить / Выключить сетевой интерфейс
- Изменить Gateway
- Изменить netmask
- Прослушиваемые порты
- lsof
- ss
- Netstat
- Настройка сети с помощью ifconfig
- iftop
- How to permanently disable a network interface?
- 4 Answers 4
- Method #1 — from NetworkManager’s Applet
- Method #2 — /etc/network/interfaces
- References
Основы настройки сети в Linux
Далее настройка зависит от версии Linux, которую Вы используете.
На новых версиях Debian . Например, на Debian 9 используется Iproute2
Если Вам нужно настроить сеть на старой версии Debian с помощью утилит ifconfig пролистайте страницу вниз или перейдите по ссылке
Настройка сети с помощью Iproute2
Актуально для Debian 9 и выше.
Чтобы получить список интерфейсов нужно воспользоваться командой
На выходе будет что-то похожее на
1: lo : mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp3s0 : mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 30:f9:ed:d9:ea:d3 brd ff:ff:ff:ff:ff:ff inet 192.0.2.131/24 brd 192.0.2.255 scope global enp3s0 valid_lft forever preferred_lft forever inet6 fe80::32f9:edff:fed9:ead3/64 scope link valid_lft forever preferred_lft forever 3: wlp1s0 : mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether b8:76:3f:f5:c4:1f brd ff:ff:ff:ff:ff:ff inet 192.168.43.4/24 brd 192.168.43.255 scope global dynamic noprefixroute wlp1s0 valid_lft 2800sec preferred_lft 2800sec inet6 fe80::ba76:3fff:fef5:c41f/64 scope link noprefixroute valid_lft forever preferred_lft forever
1: Первый интерфейс это lo он направлен на локальную машину и имеет IP 127.0.0.1/8
2: Второй интерфейс enp3s0 это моё поключение к по Ethernet к другому ПК.
В этом примере компьютер с Debian (1) соединён с компьютером с Windows (2) напрямую через Ethernet кабель
Через это подключение я захожу на комп номер 1 по SSH.
IP компьютера с Debian вы видите выше 192.0.2.131/24 , а у компа с Windows IP 192.0.2.130/24 его здесь, естественно не видно.
Как настроить этот IP читайте дальше
3: Третий интефейс wlp1s0 это подключение к местному Wi-Fi от мобильного телефона. IP получен динамически 192.168.43.4/24
Раньше интерфейсы назывались eth0 , eth1 и так далее, сейчас у них более разнообразные названия.
enp0s31f6: flags=4099 mtu 1500 ether 54:05:db:cd:b2:af txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 16 memory 0xef380000-ef3a0000 lo: flags=73 mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1000 (Local Loopback) RX packets 2465 bytes 795656 (795.6 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 2465 bytes 795656 (795.6 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 vboxnet0: flags=4163 mtu 1500 inet 192.168.56.1 netmask 255.255.255.0 broadcast 192.168.56.255 inet6 fe80::800:27ff:fe00:0 prefixlen 64 scopeid 0x20 ether 0a:00:27:00:00:00 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 678 bytes 51442 (51.4 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 wlp0s20f3: flags=4163 mtu 1500 inet 10.1.70.158 netmask 255.255.240.0 broadcast 10.1.79.255 inet6 fe80::9708:9f80:20b5:4777 prefixlen 64 scopeid 0x20 ether 8c:8d:28:c5:a2:2e txqueuelen 1000 (Ethernet) RX packets 1103516 bytes 1061399166 (1.0 GB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 320242 bytes 110222925 (110.2 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Как установить статический IP
Чтобы подлкючиться к другому компьютеру через Ethernet нужно в Windows выставить параметры адаптера через контольную панель. То же самое нужно было сделать и в Linux.
Для этого нужно выполнить команду
sudo vi /etc/network/interfaces
auto enp3s0 iface enp3s0 inet static address 192.0.2.131 netmask 255.255.255.0 dns-nameservers 8.8.8.8,8.8.4.4 auto wlp1s0 iface wlp1s0 inet dhcp
Обратите внимание, что gateway не указан.
sudo service networking restart
Второй вариант проще запомнить, но, чтобы он заработал нужно наличие service
Теперь если у Вас установлен SSH можно зайти на компьютер с Linux по ssh с помощью Putty или MobaXterm
Если нужно установить SSH выполните
sudo apt install openssh-server
sudo apt-get install openssh-client
Включить / Выключить сетевой интерфейс
ВКЛЮЧИТЬ интерфейс enp0s25:
ip link set dev enp0s25 up
ВЫКЛЮЧИТЬ интерфейс enp0s25:
ip link set dev enp0s25 down
Изменить Gateway
Добавление нового gateway
route add default gw IP_Address
Если старых gateway много, то нужно указать какой конкретно IP с какого интерфейса удалить
route delete default gw 10.0.0.1 eth0
Для создания тоже можно указать конкретные данные
route add default gw 192.168.0.1 eth0
Изменить netmask
Что такое netmask или маска подсети вы можете узнать в статье «Компьютерные сети»
default via 10.6.0.1 dev eth0
10.6.0.0/8 dev eth0 src 10.6.1.68
ip address del 10.6.1.100/8 dev eth0
ip address add 10.6.1.68/22 dev eth0
Прослушиваемые порты
lsof
Утилита lsof позволяет посмотреть все открытые в системе соединения.
Чтобы изучить именно сетевые соединения воспользуйтесь опцией i
Чтобы отображались именно порты, а не названия сетевых служб примените опцию P
ss
На вопрос как посмотреть список открытых портов также может ответить утилита ss
Если нужно проверить используется ли определённый порт, например 5000
Если вывод пуст, значит порт не используется
Чтобы узнать какая программа слушает определённый порт нужно предварительно установить один из инструментов:
Netstat
sudo apt install net-tools
С помощью команды netstat можно посмотреть список активных соединений по сети
Обычно netstat используют с набором опций tulpn который и позволяет понять какая программа слушает какой порт.
(Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN — tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN — tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN — tcp 0 0 127.0.0.1:6011 0.0.0.0:* LISTEN — tcp6 0 0 . 22 . * LISTEN — tcp6 0 0 ::1:631 . * LISTEN — tcp6 0 0 ::1:6010 . * LISTEN — tcp6 0 0 ::1:6011 . * LISTEN — tcp6 0 0 . 80 . * LISTEN — udp 0 0 0.0.0.0:52756 0.0.0.0:* — udp 0 0 0.0.0.0:68 0.0.0.0:* — udp 0 0 0.0.0.0:631 0.0.0.0:* — udp 0 0 0.0.0.0:5353 0.0.0.0:* — udp6 0 0 . 45815 . * — udp6 0 0 . 5353 . * —
Настройка сети с помощью ifconfig
Получить информацию об имеющихся интерфейсах на старых версиях Debian можно с помощью команды
Изучите вывод этой команды и посмотрите какой интерфейс Вам доступен. Обычно это eth0. , если нужно получать ip автоматически
Если нужно задать статический ip
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
Чтобы изменения пришли в силу нужно выполнить
Перезапустить/остановить/запустить сетевые службы
Настроить DNS можно через файл /etc/resolv.conf
При установке нужно было запомнить какие сетевые интерфейсы вам предлагает сконфигурировать Debian.
В старых версиях Dbian это было просто, они назывались eth0, eth1 и так далее.
Поэтому для включения сетевого интерфейса, в приведённой выше команде нужно менять 0 на 1 и т.д.
В новых версиях Debian и в других Unix-подобных дистрибутивах, например OpenBSD сетевые интерфейсы называются более разнообразно (msk0, sk0 и др.)
Для того, чтобы с этим не возникало сложностей — полезно записывать то, что предлагается сконфигурировать при установке дистрибутива.
Включить автоматическое получение ip
Выключить автоматическое получение ip можно вытащив сетевой шнур и вставив обратно. Говорят, что должно сброситься.
iftop
Мониторить объём входящего и исходящего траффика на определённом интерфейсе можно командой
How to permanently disable a network interface?
I’ve brought down a network interface with ifconfig wlan0 down , but every few hours or so, the wlan0 interface comes back up and I can’t figure out why. I don’t restart the machine, never changed /etc/network/interface . I guess my question is, how would I go about just «permanently» disabling wlan0 . Do I use /etc/network/interface ? I already have ifconfig wlan0 down in my rc.local .
4 Answers 4
Method #1 — from NetworkManager’s Applet
Try disabling the wireless networking under the Network Applet that’s accessible from under the icons in the upper right of your desktop.
NOTE: The networking applet’s icon looks like a triangle wedge. The image above is pointing to is as arrow #1. If you click it you should see a menu slide out from where you can disable wireless permanently, arrow #2.
Method #2 — /etc/network/interfaces
From the file /etc/network/interfaces you can specify that NetworkManager shouldn’t control the wlan0 interface. To do so simply add this line to the above mentioned file:
Then restart NetworkManager:
$ sudo service network-manager restart
References
I had to do something similar to this but wanted the device to not come up at all. We have physically covered up an ethernet port in a linux based device and so it shouldn’t appear at all.
I did this with udev rules.
This udev rule will tell linux to remove the pci device when a network device which has the ID_NET_NAME_ONBOARD of eno2 is added. Add it to e.g. /etc/udev/rules.d/90-disable-eno2.rules .
ACTION=="add", SUBSYSTEM=="net", ENV=="eno2", RUN+="/bin/sh -c 'echo 1 > /sys$DEVPATH/device/remove'"
The magic environment variables like ID_NET_NAME_ONBOARD are set by udev here. I have copied some examples from the comment in that file below.
PCI Ethernet card with firmware index "1": ID_NET_NAME_ONBOARD=eno1 ID_NET_NAME_ONBOARD_LABEL=Ethernet Port 1 PCI Ethernet card in hotplug slot with firmware index number: /sys/devices/pci0000:00/0000:00:1c.3/0000:05:00.0/net/ens1 ID_NET_NAME_MAC=enx000000000466 ID_NET_NAME_PATH=enp5s0 ID_NET_NAME_SLOT=ens1 PCI Ethernet multi-function card with 2 ports: /sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.0/net/enp2s0f0 ID_NET_NAME_MAC=enx78e7d1ea46da ID_NET_NAME_PATH=enp2s0f0 /sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/net/enp2s0f1 ID_NET_NAME_MAC=enx78e7d1ea46dc ID_NET_NAME_PATH=enp2s0f1 PCI wlan card: /sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/net/wlp3s0 ID_NET_NAME_MAC=wlx0024d7e31130 ID_NET_NAME_PATH=wlp3s0 USB built-in 3G modem: /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/2-1.4:1.6/net/wwp0s29u1u4i6 ID_NET_NAME_MAC=wwx028037ec0200 ID_NET_NAME_PATH=wwp0s29u1u4i6 USB Android phone: /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/net/enp0s29u1u2 ID_NET_NAME_MAC=enxd626b3450fb5 ID_NET_NAME_PATH=enp0s29u1u2 s390 grouped CCW interface: /sys/devices/css0/0.0.0007/0.0.f5f0/group_device/net/encf5f0 ID_NET_NAME_MAC=enx026d3c00000a ID_NET_NAME_PATH=encf5f0
When testing your rules you will need to run a command like the following to make sure everything is matching and syntax is correct.
# Find the path marked "P" with this command. udevadm info --path=/sys/class/net/eno2 # Test with this command with the path from above udevadm test --action="add" /devices/pci0000:00/0000:00:1c.4/0000:03:00.0/net/eno2 2>&1 | less