
- •4.1. Создание, изменение и удаление учётных записей
- •4.1.1. Введение
- •4.1.2. Добавление пользователя
- •4.1.3. Изменение параметров пользовательской учётной записи
- •4.1.4. Удаление учётной записи
- •6.1. Определение существующих установок tcp/ip
- •Комментарий
- •6.1.1. Ifconfig(8) — настройки сетевых интерфейсов
- •6.1.2. Netstat(1)
- •6.1.2.1. Таблица маршрутизации
- •6.1.2.2. Статистика
- •6.1.2.3. Работающие интернет сервисы и открытые сокеты
- •6.1.2.3.1. Открытие tcp соединения (тройное рукопожатие)
- •6.1.2.3.2. Закрытие tcp соединения
- •6.1.3. Route(8)
- •6.1.4. /Etc/resolv.Conf(5)
- •6.2.2.1. Изменение настроек физического уровня
- •6.2.2.2. Изменение настроек канального уровня
- •6.2.2.2.1. Изменение mac-адреса:
- •6.2.2.2.2. Смена флагов канального уровня
- •6.2.2.3. Изменение настроек сетевого уровня
- •6.2.2.3.2. Ip, маска подсети, широковещательный адрес
- •6.2.2.3.4. Другие протоколы сетевого уровня
- •6.2.3. Route(8) — настройка таблицы маршрутизации
- •6.2.4. Resolv.Conf(5) — настройка клиента dns
- •6.2.5. Hosts(5) — локальная база имён
- •6.2.6. Как сохранить установленные сетевые параметры
- •6.2.6.1. FreeBsd
- •6.3. Определение какие tcp или udp порты открыты в системе
- •Комментарий
- •6.3.1. Fstat(1)
- •6.3.2. Sockstat(1)
- •6.3.3. Lsof(1)
- •6.3.4. Nmap(1)
- •6.4. Проверка доступности tcp/ip сервиса
- •Комментарий
- •6.4.1. Ping(8)
- •6.4.2. Traceroute(1)
- •6.4.3. Hping(8)
- •6.4.4. Telnet(1), nc(1)
6.2.2.1. Изменение настроек физического уровня
В общем случае, для конфигурирования физических параметров интерфейса надо предварительно изучить справку по соответствующему драйверу. Мы приведём примеры на основе драйвера к распространённому чипсету RealTek. (См. man rl.) Для этого драйвера можно изменять скорость передачи данных (10 или 100 Mbps) и режим передачи (half-duplex — одновременная передача пакетов в обе стороны не поддерживается; или full-duplex — поддерживается одновременная передача пакетов в обе стороны).
$ifconfig rl0
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=8<VLAN_MTU>
inet6 fe80::250:22ff:feb0:7f39%rl0 prefixlen 64 scopeid 0x1
inet 192.168.25.158 netmask 0xffffff00 broadcast 192.168.25.255
ether 00:50:22:b0:7f:39
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
Переведём интерфейс вручную на скорость 10 мегабит в секунду (Mbps):
# ifconfig rl0 media 10baseT/UTP
$ ifconfig rl0
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=8<VLAN_MTU>
inet6 fe80::250:22ff:feb0:7f39%rl0 prefixlen 64 scopeid 0x1
inet 192.168.25.158 netmask 0xffffff00 broadcast 192.168.25.255
ether 00:50:22:b0:7f:39
media: Ethernet 10baseT/UTP
status: active
Здесь в командной строке опция media принадлежит команде ifconfig(8), а значение 10baseT/UTP взято из справки по драйверу rl.
Теперь мы можем вручную выставить обратно 100baseTX, командой ifconfig rl0 media 100baseTX, а можем включить назад автоопределение.
# ifconfig rl0 media autoselect
$ ifconfig rl0
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=8<VLAN_MTU>
inet6 fe80::250:22ff:feb0:7f39%rl0 prefixlen 64 scopeid 0x1
inet 192.168.25.158 netmask 0xffffff00 broadcast 192.168.25.255
ether 00:50:22:b0:7f:39
media: Ethernet autoselect (none)
status: no carrier
$ ifconfig rl0
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=8<VLAN_MTU>
inet6 fe80::250:22ff:feb0:7f39%rl0 prefixlen 64 scopeid 0x1
inet 192.168.25.158 netmask 0xffffff00 broadcast 192.168.25.255
ether 00:50:22:b0:7f:39
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
Обратите внимание: после включения автоопределения некоторое время интерфейс был недоступен. При этом флаг UP был установлен, т.е. приложения имели право его использовать, но интерфейс вёл себя так, как буд-то из него вынули провод: status: no carrier. Что неудивитеьно, пока интерфейс не знает на какой скорости вести передачу, о какой несущей может идти речь?
Наконец, переключение дуплекса, здесь нас ждёт некоторая недокументированная неожиданность:
# ifconfig rl0 media 100baseTX
$ ifconfig rl0
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=8<VLAN_MTU>
inet6 fe80::250:22ff:feb0:7f39%rl0 prefixlen 64 scopeid 0x1
inet 192.168.25.158 netmask 0xffffff00 broadcast 192.168.25.255
ether 00:50:22:b0:7f:39
media: Ethernet 100baseTX
status: active
В настоящий момент наш интерфейс пребывает в режиме half-duplex, потому что это режим по умолчанию. Соответственно никакой опции для его включения нет, и при попытке задать её получится ошибка, с некоторой совершенно дикой диагностикой:
# ifconfig rl0 mediaopt half-duplex
ifconfig: SIOCSIFMEDIA (mediaopt): Device not configured
Что поделаешь, и на солнце есть пятна. Итак, в настоящий момент наш интерфейс пребывает в режиме half-duplex, а для перевода его в full-duplex, мы можем употребить следующую команду:
# ifconfig rl0 mediaopt full-duplex
$ ifconfig rl0
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=8<VLAN_MTU>
inet6 fe80::250:22ff:feb0:7f39%rl0 prefixlen 64 scopeid 0x1
inet 192.168.25.158 netmask 0xffffff00 broadcast 192.168.25.255
ether 00:50:22:b0:7f:39
media: Ethernet 100baseTX <full-duplex>
status: active
Сравните это с первым скриншотом:
...
media: Ethernet autoselect (100baseTX <full-duplex>)
...
Как видно, выставлено всё тоже самое, только отсутствует автоопределение. Если мы не добиваемся какого-то специального эффекта, то лучше оставить автоопределение. Из моего личного опыта: однажды мне пришлось вручную понижать скорость работы интерфейсов, которые были соединены некачественным проводом. Сопротивление в медном проводе было вдвое выше нормы. Интерфейсы договаривались о передаче данных на скорости 100Mbps в режиме full-duplex, но реально вести передачу на такой скорости не могли и их пришлось вручную «тормозить».