FreeBSD в деталях. О плюсах и минусах системы. Полный роутер для корбины на FreeBSD для Чайников

Полный роутер для корбины на FreeBSD для Чайников.

Включая PPTP, L2TP и multicast routing для Corbina IPTV.

Полное пошаговое руководство для полных чайников.

Эти скрипты больше не развиваются

Я открыл тему, в которой выложил скрипт для полностью автоматического проделывания того, что тут описано - Скрипт полностью автоматического создания роутера для корбины на FreeBSD (Custler). Там сделаны много улучшений и дополнений.

Одна из главных задач, которые я хотел решить – избавиться от ручного прописывания шлюза и маршрутов в конфигурационных файлах, так как сейчас маршруты выдаёт корбиновский DHCP сервер. Задача - РЕШЕНА , за исключением нескольких маршрутов, которые корбина почему-то не выдаёт, но и они прописываются из dns имён этих серверов (например сервер точного времени - ntp.corbina.ru) . Также вручную прописаны адреса IPTV серверов в igmpproxy.conf. Всё остальное – на автомате. Так если у Вас изменится шлюз или корбина поменяет адреса vpn серверов или изменит ip локальных ресурсов, ничего править в конфигах не придётся. То есть, при переезде, просто переносите комп, включаете - работает. Или можно собрать у себя дома, а потом подарить другу , которому не надо ничего настраивать.

Итак, здесь решено:

  • - автоматическое получение всех маршрутов до локальных ресурсов Корбины по DHCP
  • - автоматическое установление VPN соединения по протоколам pptp и l2tp на выбор
  • - маршрутизация multicast траффика для просмотра IPTV
  • - просмотр видео с сайта corbina.tv без отключения интернета
  • - синхронизация времени
  • - проброс портов для torrent, emul и т.п
  • - история соединений и выдаваемых маршрутов пишется в /var/log/Corbina/

Все используемые файлы конфигурации - в приложенном архиве, в конце этого поста - FreeBSD_config_files_[дата последнего изменения].zip .

У меня используются следующие имена интерфейсов

xl0 – для внешнего интерфейса, подключенного в сеть корбины

nve0 – для интерфейса домашней сети.

Там, где будет указано, эти имена Вам надо будет изменить на свои.

Для туннеля всегда будет имя ng0 , так как используется netgraf и mpd.

Чтобы определить какие у Вас интерфейсы есть по крайней мере два способа -

1) метод "тыка":

Так как предполагается, по умолчанию, что у нас два интерфейса, то один - внешний. Если не угадал - перетыкаешь провод корбины в другой и всё.

2) Включение мозга:

Если в компе вставлены две одинаковые сетевые карты, то они нумеруются xxx0, xxx1, причем нумерация происходит по слотам от процессора: ближняя - 0, следующая - 1. Однако я в этом не до конца уверен. Если кто знает лучше - поправте меня.

Если в компе разные сетевые карты, то, например в файле GENERIC, можно найти соответствие префикса устройства (два или три символа перед цифрой) и модели сетевой карты:

# PCI Ethernet NICs. device de # DEC/Intel DC21x4x (``Tulip"") device em # Intel PRO/1000 adapter Gigabit Ethernet Card device ixgb # Intel PRO/10GbE Ethernet Card device le # AMD Am7900 LANCE and Am79C9xx PCnet device txp # 3Com 3cR990 (``Typhoon"") device vx # 3Com 3c590, 3c595 (``Vortex"") # PCI Ethernet NICs that use the common MII bus controller code. # NOTE: Be sure to keep the "device miibus" line in order to use these NICs! device miibus # MII bus support device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet device bfe # Broadcom BCM440x 10/100 Ethernet device bge # Broadcom BCM570xx Gigabit Ethernet device dc # DEC/Intel 21143 and various workalikes device fxp # Intel EtherExpress PRO/100B (82557, 82558) device lge # Level 1 LXT1001 gigabit Ethernet device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet device nge # NatSemi DP83820 gigabit Ethernet device nve # nVidia nForce MCP on-board Ethernet Networking device pcn # AMD Am79C97x PCI 10/100 (precedence over "le") device re # RealTek 8139C+/8169/8169S/8110S device rl # RealTek 8129/8139 device sf # Adaptec AIC-6915 (``Starfire"") device sis # Silicon Integrated Systems SiS 900/SiS 7016 device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet device ste # Sundance ST201 (D-Link DFE-550TX) device ti # Alteon Networks Tigon I/II gigabit Ethernet device tl # Texas Instruments ThunderLAN device tx # SMC EtherPower II (83c170 ``EPIC"") device vge # VIA VT612x gigabit Ethernet device vr # VIA Rhine, Rhine II device wb # Winbond W89C840F device xl # 3Com 3c90x (``Boomerang"", ``Cyclone"") # ISA Ethernet NICs. pccard NICs included. device cs # Crystal Semiconductor CS89x0 NIC # "device ed" requires "device miibus" device ed # NE000, SMC Ultra, 3c503, DS8390 cards device ex # Intel EtherExpress Pro/10 and Pro/10+ device ep # Etherlink III based cards device fe # Fujitsu MB8696x based cards device sn # SMC"s 9000 series of Ethernet chips device xe # Xircom pccard Ethernet # Wireless NIC cards device wlan # 802.11 support device wlan_wep # 802.11 WEP support device wlan_ccmp # 802.11 CCMP support device wlan_tkip # 802.11 TKIP support device an # Aironet 4500/4800 802.11 wireless NICs. device ath # Atheros pci/cardbus NIC"s device ath_hal # Atheros HAL (Hardware Access Layer) device ath_rate_sample # SampleRate tx rate control for ath device awi # BayStack 660 and others device ral # Ralink Technology RT2500 wireless NICs. device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs.

Полный список сетевых карт и имена драйверов можно найти на оф. сайте - FreeBSD - Hardware - Ethernet

1. Установка FreeBSD 6.3.

Так как у меня был «лишний» системный блок на AMD Athlon XP 64 3200+ (2ГГц), все ссылки указаны для дистрибутивов amd64. Если у Вас система на процессоре Intel, то вместо amd64 в ссылках подставляйте i368.

1.1. Скачиваем образ установочного диска FreeBSD 6.3 6.3-RELEASE-amd64-disc1.iso

Но мне, как старому видузятнику очень нравится SecureCRT – она условно бесплатная (30 дней полнофункциональный триал – нам хватит) – в нём выберете terminal emulation – xterm и поставьте птицу ANSI Color. шрифт - Fixedsys 10pt

Это удобно при пользовании Midnight Commander’ом. В SecureCRT также встроен sftp клиент, которым очень удобно копировать командами put (скопировать в unix)и get (скопировать из unix), и когда я буду писать «скопировать», я буду иметь ввиду именно копирование с помощью sftp с виндовой машины.

3.1. Теперь нам нужно загрузить необходимые пакеты.

3.1.1. Первое, что нужно сделать – прописать default route (у меня его не было):

route add 0.0.0.0/0 GW

где GW - шлюз, который можно посмотреть командой netstat -rn

3.1.2. после этого проверяем связь с корбиновским FTP:

ping ftp.corbina.ru

3.1.3. Запускаем sysinstall и идём в Configure -> Packages

3.1.5. Делаем Install всего выбранного и перезагружаемся.

4. Сборка необходимой нам конфигурации ядра.

Теперь надо пересобрать ядро с нужной нам конфигурацией.

4.1. Для этого запускаем mc и переходим в

/usr/src/sys/amd64/conf/

4.2. Копируем файл GENERIC в файл MYROUTER и редактируем его, добавляя

(Если у Вас тоже amd64 - можно взять готовый файл из приложенного архива.)

# =================Enable Multicast Routing ================= options MROUTING # ================ Enable pf & altq ============== device pf device pflog device pfsync options ALTQ options ALTQ_CBQ options ALTQ_RED options ALTQ_RIO options ALTQ_HFSC options ALTQ_CDNR options ALTQ_PRIQ # ================== Enable NETGRAPH ======================= options NETGRAPH options NETGRAPH_ASYNC options NETGRAPH_BPF options NETGRAPH_BRIDGE options NETGRAPH_CISCO options NETGRAPH_ECHO options NETGRAPH_ETHER options NETGRAPH_FRAME_RELAY options NETGRAPH_GIF options NETGRAPH_GIF_DEMUX options NETGRAPH_HOLE options NETGRAPH_IFACE options NETGRAPH_IP_INPUT options NETGRAPH_KSOCKET options NETGRAPH_L2TP options NETGRAPH_LMI # MPPC Для MPPC компрессии требуются специальные лицензионные файлы, которые не прилагаются в ядро #=== options NETGRAPH_MPPC_COMPRESSION options NETGRAPH_MPPC_ENCRYPTION options NETGRAPH_ONE2MANY options NETGRAPH_PPP options NETGRAPH_PPTPGRE options NETGRAPH_RFC1490 options NETGRAPH_SOCKET options NETGRAPH_TCPMSS options NETGRAPH_TEE options NETGRAPH_TTY options NETGRAPH_UI options NETGRAPH_VJC #===================================================

4.3. Сохраняем файл MYROUTER и переходим в /usr/src/

4.4. Компилируем новое ядро:

Make buildkernel KERNCONF=MYROUTER

курим минут 10-20.

4.5. Устанавливаем новое ядро:

Make installkernel KERNCONF=MYROUTER

4.6. Перезагружаемся.

5. Настройка роутинга, пакетного фильтра (pf) и vpn клиента mpd4

5.1. Создаём директории:

в /etc директорию corbina - mkdir /etc/corbina

в /var/log директорию Corbina - mkdir /var/log/Corbina - сюда будут записываться логи соединений и маршрутов, выдаваемых по DHCP.

5.2. Копируем из приложенного архива в /etc/corbina файл

sftp> cd /etc/corbina

sftp> put corbina.local.nets

Файл corbina.local.nets будет использоваться в rc.local для предварительного прописывания маршрутов, которые почему-то пока не выдаёт корбиновский DHCP сервер. Если надо будет добавить маршруты, не выдаваемые по DHCP, то добавляем их именно в файл corbina.local.nets . В формате xxx.xxx.xxx.xxx/mm.

5.3. Копируем из приложенного архива в /etc/ файл rc.conf и редактируем его подставляя свои имена в hostname, ifconfig_nve0 , ifconfig_xl0

5.4. Копируем из приложенного архива в /etc/ файл pf.conf и редактируем его подставляя свои имена интерфейсов в

ext_if="xl0"

int_if="nve0"

В pf.conf уже сделаны пробросы портов для torrent"a и emul"a со следующими параметрами:

внутренний комп 192.168.1.3:

Torrent port - 25893

Emule port - 4662 - стандартный

внутренний комп 192.168.1.2:

Torrent port - 23789

5.5. Копируем из приложенного архива в /etc/ файлы:

- rc.local и даём ему права на выполнение chmod +x /etc/rc.local

- dhclient.conf и исправляем в нём СВОЁ имя внешнего интерфейса.

- dhclient-script и делаем chmod +x /etc/dhclient-script

- ntp.conf

В dhclient.conf можно добавить две строки после interface "xl0" {

Send host-name "client117.dialup.corbina.ru"; send dhcp-client-identifier mm:mm:mm:mm:mm:mm;

client117.dialup.corbina.ru - то же имя, что и в /etc/rc.conf, которое Вы себе придумали в самом начале;

mm:mm:mm:mm:mm:mm - MAC адрес карты, котороя смотрит во внешний мир.

В этом случае однажды выданный для этой карты локальный IP адрес (типа 10.x.x.x) будет закреплен за ней на 14 суток, и останется закрепленным, если будете включать компьютер хотябы раз в две недели То есть практически получится фиксированный локальный IP.

5.6. Копируем из приложенного архива в /usr/local/etc/mpd4/ файлы

- mpd.conf

- mpd.links

- io-up-l2tp.sh

- io-up-pptp.sh

- io-down-l2tp.sh

- io-down-pptp.sh

файлам io-.....sh надо дать права на запуск.chmod +x /usr/local/etc/mpd4/io*

5.7. Редактируем mpd.conf прописывая вместо ХХХ в строках

- set auth authname ХХХ

- set auth password ХХХ

Свои логин и пароль соответственно и одинаково в блоках для l2tp и pptp.

5.8. Выбирать используемый протокол (l2tp или pptp) можно редактируя в mpd.conf строку

load vpn-l2tp

Для pptp она будет выглядеть:

load vpn-pptp

5.9. После запуска mpd можно будет обращаться к веб-интерфейсу mpd по адресу http://192.168.1.1:5006 с логином me и паролем only. Изменить это можно в секции startup файла mpd.conf:

set web ip 192.168.1.1

set web port 5006

set web user me only

5.10. По желанию, можно включить запись протокола работы mpd в файл /var/log/Corbina/mpd.log

Для этого в /etc/syslog.conf надо вписать:

Mpd *.* /var/log/Corbina/mpd.log

и создать файл mpd.log

Touch /var/log/Corbina/mpd.log

Чтобы запустить лог немедленно надо дать сислогу команду перечитать конфиг:

Kill -HUP `cat /var/run/syslog.pid`

C этого момента начнётся логирование работы mpd, которое продолжится и после перезагрузки.

А чтобы увидеть детально весь лог работы mpd надо дать команду mpd4 -k и после рестарта mpd в интерактивном режиме дать ему команду log all .

6. Установка и настройка igmpproxy для IPTV.

6.1. Копируем из приложенного архива в /root файл igmpproxy_src_0.1.1_freebsd.tar.gz, за который отдельная и особая благодарность neo-man (aka Pavel Korshunov) за портирование этой проги из linux. Обсуждение igmpproxy в ветке multicast роутер на базе FreeBSD

6.2. Распаковываем его:

Tar -xvf igmpproxy_src_0.1.1_freebsd.tar.gz

6.3. Переходим в

cd /root/igmpproxy/src

6.4. Компилируем

6.5. Устанавливаем

make install

6.6. Редактируем конфиг /usr/local/etc/igmpproxy.conf , подставляя вместо моих xl0 и nve0 свои имена интерфейсов.

6.7. Так как Корбина сейчас перестраивает свою сеть вещания и начинает вещать из подсети 172.16.16.0/24, после строки

phyint xl0 upstream ratelimit 0 threshold 1

надо добавить строку

altnet 172.16.16.0/24

Строка для запуска igmpproxy (igmpproxy_enable="YES" ) уже прописана в rc.conf.

Перезагружаемся и наслаждаемся…

Теперь можно ходить в интернет, пользоваться локальными ресурсами и даже смотреть корбина IPTV на нескольких компьютерах ОДНОВРЕМЕННО!!!

Только имейте ввиду, что при использовании программ поиска каналов, надо ставить таймаут переключения секунд 20-30, иначе забивается стэк igmpproxy и весь роутер вешается напроч.

P.S. ChangeLog приложенного конфигурационного файла

10.02.08 - Добавлен автозапуск демона синхронизации времени с корбиновского сервера ntp.corbina.ru. Добавлено получение статических роутов от dhcp сервера. Теперь ВСЕ маршруты прописываются автоматом.

14.02.08 - Изменён конфиг ядра. Убрана поддержка ipv6, ipfw, pcmcia, cardbus, firewire.

21.02.08 - Добавлено options NETGRAPH_TCPMSS в конфигурацию ядра.

22.02.08 - Убрано непрерывное логирование igmpproxy в messages и debug.log. Необходимо перекомпилировать make igmpproxy из приложенного файла. И установить его - make install.

03.03.08 - Добавлен файл ntp.conf. История соединений и маршрутов пишется в /var/log/Corbina/. В mpd.links исправлено.ru на.net.

04.03.08 - Исправлена ошибка взятия адреса локального шлюза из /var/db/dhclient.leases.*. Раньше брался не последний а предпоследний сеанс. Хотя шлюз обычно не меняется - но не порядок. Теперь в файл /var/log/Corbina/vpn.log пишутся все получаемые айпишники: локальный шлюз, локальный адрес, впн шлюз, внешний (WAN) адрес.

Annelise Anderson

Поздравляем с установкой FreeBSD! Теперь настало время прочитать этот документ. Это введение для людей, которые только начинают работать с FreeBSD и Un*x, поэтому оно начинается с самых основ. Я подразумеваю, что Вы используете FreeBSD версии 2.0.5 или более позднюю, Ваша система имеет одного пользователя (Вас), и Вы неплохо разбираетесь с DOS/Windows или OS/2.

1. Вход в систему и выход из нее.

Войдите в систему (когда Вы видите приглашение login:) как пользователь, созданный Вами в процессе инсталяции, или как root . (Во время инсталяции FreeBSD будет создан бюджет для пользователя root; root может делать в системе все что угодно, включая удаление жизненно важных файлов, так что будьте осторожны.) После входа Вы увидите приглашение, начинающееся с символов % или #, в зависимости от того под каким пользователем Вы вошли. Символ % характерен для обычного пользователя, а символ # - для пользователя с правами root.

Для выхода из системы (к новому приглашению login:) просто введите

Естественно, после каждой команды нужно нажимать enter , и помните, что Unix чувстителен к регистру символов -- exit, но не EXIT.

Чтобы выгрузить систему введите

    # /sbin/shutdown -h now

Для перезагрузки компьютера введите

    # /sbin/shutdown -r now

    # /sbin/reboot

Вы также можете перезагрузить компьютер, нажав клавиши Ctrl-Alt-Delete , и немного подождав пока система корректно завершит свою работу. Это аналогично команде /sbin/reboot и намного, намного лучше, чем нажатие кнопки Reset. Вы ведь не хотите переустанавливать FreeBSD, не так ли?

2. Добавление пользователя с правами суперпользователя (root).

Если Вы не создали других пользователей в процессе инсталяции и, таким образом, входите в систему как root, Вы возможно захотите создать нового пользователя. Это можно сделать командой

    # adduser

Если Вы используете эту команду в первый раз, Вас спросят о некоторых значениях по умолчанию, чтобы затем их сохранить. Например, Вы можете сделать csh оболочкой (shell) по умолчанию вместо sh. В противном случае, просто нажимайте каждый раз enter , чтобы согласиться с каждым значением по умолчанию. Эти значения сохраняются в файле /etc/adduser.conf, который может быть затем отредактрирован любым текстовым редактором.

Предположим Вы создали пользователя jack с полным именем Jack Benimble . Для безопасности ему следует дать пароль. Когда Вас спросят хотите ли Вы включить пользователя jack в другие групппы, введите whell .

    Login group is ``jack"". Invite jack into other groups: wheel

Это позволит входить в систему как пользователь jack и затем использовать команду su, чтобы стать root"ом.

Вы можете прервать выполнение команды adduser в любое время, нажав клавиши Ctrl-c . Рекомендуем Вам создать еще одного пользователя на случай, если вы вдруг почему-то не сможете войти в систему под именем jack.

После этого выйдите из системы и снова войдите в нее как пользователь jack. Вообще, по возможности старайтесь работать в системе как обычный пользователь, чтобы случайно что-нибудь не испортить.

Если Вы уже создали пользователя и хотите, чтобы он мог использовать команду su, зайдите в систему как root и исправьте файл /etc/group, добавив слово "jack" в первую строчку (группу wheel). Но сначала попрактикуйтесь в использовании текстового редактора vi, или используйте редактор попроще, например ее.

Для удаления пользователя используйте команду rmuser .

3. Начало работы

Войдите в систему как обычный пользователь, немного осмотритесь, и попробуйте выполнить некоторые полезные команды.

Вот несколько команд с описанием, что они делают:

Сообщает Вам, кто Вы!

Показывает в какой текущей директории Вы находитесь.

Выдает список файлов в текущей директории.

Выдает список файлов в текущей директории со значком "*" - после исполняемых файлов, "/" - после директорий и "@" - после символических ссылок.

Выдает список файлов в длинном формате, т.е. с указанием размера, даты и прав.

Выдает список всех файлов, включая скрытые файлы (файлы с точкой в начале имени) файла.

Меняет директорию. cd .. переходит вверх на один уровень (обратите внимание на пробел после слова cd), cd ~ переходит в домашнюю директорию пользователя, например, /usr/home/jack. Попробуйте ввести cd /cdrom , а затем ls , чтобы выяснить установлен ли у Вас CD-ROM и работает ли он.

view filename

Позволит Вам просмотреть файл с именем filename без возможности изменить его. Попробуйте ввести view /etc/fstab (для выхода наберите:q).

cat filename

Отображает файл с именем filename на экране. Если файл слишком большой и не умещается на экране, нажмите ScrollLock и, используя клавишу "стрелка вверх", двигайтесь назад. Вы также можете использовать ScrollLock для просмотра man pages. Попробуте просмотреть файлы "с точкой" в своей домашней директории.

Обратите внимание на псевдонимы (aliases) в файле.cshrc для некоторых из команд ls (они очень удобны). Вы можете создать другие псевдонимы, отредактировав.cshrc. Чтобы сделать эти псевдонимы доступными всем пользователям, отредактируйте файл /etc/csh.cshrc.

4. Получение справки и информации.

Имеются несколько команд помощи. После каждой команды вместо слова " text " нужно ввести какое-то слово -- обычно это команда или имя файла.

Выдаст Вам все, что содержит строку text в базе данных whatis .

Выдаст соответствующий man page для слова text . Man pages - это главный источник информации в Un*x системах. Например, man ls расскажет Вам обо всех возможностях использования команды ls . Управляющие комбинации клавиш: enter - для продвижения по тексту, Ctrl-b - для возврата, Ctrl-f - для продвижения вперед, q или Ctrl-c - для выхода.

Сообщит, в какой директории находится команда text , если эта директория прописана в пользовательском пути (path).

Все пути, где найдена строка text.

Сообщит Вам, что делает команда text . Комбинация whatis * расскажет Вам обо всех двоичных файлах в текущей директории.

Найдет файл с именем text , сообщив его полный путь.

Возможно вы захотите попробовать использовать команду whatis на некоторых полезных командах, таких как cat, more, grep, mv, find, tar, chmod, chown, date, and script. Команда more позволит Вам читать файл постранично, например, more filename или cat filename|more . Символ * работает как групповой символ, например, ls w* выдаст список всех файлов в текущей директории, начинающихся с буквы w.

Некотрые из этих команд работают не очень хорошо? И locate и whatis зависят от базы данных, которая еженедельно перестраивается. Если Вы не собираетесь оставлять работающую машину до конца недели, попробуйте время от времени выполнять команды для ежедневного, еженедельного и ежемесячного сопровождения. Запустите их как пользователь root и дайте каждой из них закончить, прежде чем запускать другую.

    # /etc/daily
    # /etc/weekly
    # /etc/monthly

Если Вы устали ждать, нажмите Alt-F2 и Вы получите новую виртуальную консоль. В конце концов, это же многопользовательская и многозадачная система. Однако, эти команды могут выдавать сообщения на экран во время своего выполнения; команда clear очистит экран. После их выполнения, Вы можете просмотреть сообщения в /var/mail/root и /var/log/messages. В основном, выполнение таких команд является частью администрирования системы -- и как единственный пользователь Unix системы, Вы - свой собственный системный администратор. Вообще, все что должно делаться с правами root"а может считаться системным администрированием.

5. Редактирование текста.

Для настройки Вашей системы, Вам придется редактировать текстовые файлы. Большинство из них находится в директории /etc, и изменять их может только root. Вы можете использовать удобный редактор ее, но в конечном счете vi стоит того, чтобы его изучить. Есть отличное руководство по редактору vi в /usr/src/contrib/nvi/docs/tutorial, если Вы конечно его установили; однако его можно получить и по ftp с ftp.cdrom.com в директории FreeBSD/FreeBSD-current/src/contrib/nvi/docs/tutorial.

Перед тем, как редактировать файл, сделайте его копию. Предположим, что Вам надо отредактировать файл /etc/rc.conf. Перейдите командой cd /etc в дирекорию /etc и наберите

    # cp rc.conf rc.conf.orig

Теперь у Вас есть копия файла rc.conf, и Вы сможете позднее скопировать rc.conf.orig в rc.conf, чтобы восстановить оригинал. Но лучше все-таки переместить (переименовать) файл и затем скопировать обратно:

    # mv rc.conf rc.conf.orig
    # cp rc.conf.orig rc.conf

потому что команда mv сохраняет первоначальную дату и владельца файла. Теперь можно редактировать rc.conf. Если Вы теперь хотите вернуть оригинал, наберите mv rc.conf rc.conf.myedit (подразумевается, что Вы хотите сохранить Вашу исправленную версию) и затем введите

    # mv rc.conf.orig rc.conf

Для редактирования файла наберите

    # vi filename

Двигаться по тексту можно "стрелками". Esc переключает vi в командный режим. Вот некоторые команды, который Вам нужно знать:

удаляет букву, на которой находится курсор.

удаляет всю строку

вставляет текст в место курсора

вставляет текст после курсора

Если Вы введете i или a, Вы можете редактировать файл. Esc переключает обратно в командный режим, где Вы можете ввести

чтобы записать изменения на диск и продолжить редактирование

записать и выйти

выйти без записи

найти слово " text "; / Enter (клавиша Enter) для поиска следующего слова " text "

перейти в конец файла

перейти на строку n файла, где n - номер строки

перерисовать экран

двигаться вперед и назад по экрану.

Потренируйтесь немного в работе с vi в своей домашней директории, создав какой-нибудь новый файл. И не удивляйтесь, если Вы получите несколько сюрпризов от vi, потому что это действительно сложный редактор, и когда-нибудь Вы введете неосторожно команду, которая сделает совсем не то, что вы от нее ожидаете. (Хотя некоторым людям на самом деле нравится vi - он гораздо мощнее DOS"овского EDIT).

Теперь Вы можете зайти в систему как root, воспользоваться vi для редактирования /etc/group, и добавить пользователя в группу wheel, чтобы он имел права root"a. Просто добавьте запятую и имя пользователя в конец первой строчки файла, нажмите Esc для перехода в командный режим, и введите: wq для записи и выхода. Изменения вступят в силу немедленно. Имейте в виду, что пробел после запятой не нужен.

6. Печать файлов из DOS.

На этом этапе у Вас наверняка принтер под FreeBSD не работает, поэтому здесь описан способ создания файла из man page, копирования его на дискету, и затем печати его из DOS"а. Предположим, Вы хотите повнимательнее почитать о изменении прав на файлы (это дейстивительно очень важно). Для этого Вы можете использовать команду man chmod. Команда

    # man chmod | col -b > chmod.txt

удалит все лишние коды форматирования и запишет man page в файл chmod.txt. Теперь вставьте отформатированную дискету под DOS"ом в дисковод, станьте root"ом (используя su), и наберите команду

    # /sbin/mount -t msdos /dev/fd0 /mnt

для монтирования дисковода в точку /mnt.
Теперь (Вам больше не нужно быть root"ом) зайдите в директорию, где Вы создали файл chmod.txt и скопируйте его на дискету

    % cp chmod.txt /mnt

Теперь Вы можете размонтировать дисковод

    # /sbin/umount /mnt

и перезагрузитесь для возврата в DOS.
Далее скопируйте файл в какую-нибудь директорию, откройте его любым текстовым редактором и распечатайте. Надеюсь это сработало! (Копирование файлов с FreeBSD на смонтированный раздел DOS в некоторых случаях все еще представляет небольшой риск).

7. Другие полезные команды.

показывает свободное дисковое пространство и смонтированные системы

показывает запущенные процессы. ps ax - в более узкой форме

rm filename

удаляет файл с именем filename

rm -R dir

удаляет директорию с именем dir и все поддиректории

выдает список всех файлов в текущей директории и во всех поддиректориях; я использовал вариант ls -AFR > where.txt , чтобы получить список всех файлов в директории / и отдельно в директории /usr, прежде чем нашел лучший способ для поиска файлов.

меняет пароль пользователя

man page по файловой системе Unix

Используйте команду find для поиска файлов в директории /usr и любой его поддиректории:

    % find /usr -name "filename"

Можете использовать символ * в слове "fileneme". Если Вы скажете искать в директории / вместо /usr, поиск будет производиться во всех смонтированных файловых системах, включая CD-ROM и раздел DOS.

В данной статье рассмотрим операционную систему – FreeBSD, чем она привлекает пользователей и какие недостатки имеет. Еще в 1993 году началась разработка операционной системы FreeBSD (Berkeley Software Distribution) , в этом же году вышла первая официальная версия. Последний релиз системы появился в августе 2015. Как видим, ОС FreeBSD стабильно развивается и естественно имеет своих поклонников. Давайте разберемся, за что так пользователи любят FreeBSD и какие недостатки имеет данная система.

Многие пользователи часто сравнивают FreeBSD с Linux , так как обе эти системы похожи между собой. Общая черта: свободная загрузка из сети, открытые исходники, бесплатность, форумы поддержки, где можно найти много приверженцев данной ОС. Основные отличия Linux и BSD более подробно .

Главные преимущества системы FreeBSD:

  • Стабильность работы. Несколько лет назад компания Netcraft привела к сведенью результаты анализа работы сайтов. Наиболее долгую непрерывную работу (по календарным дням) имели веб-проекты, которые работали под управлением FreeBSD.
  • Бесплатное скачивание ОС. Большинство пользователей всегда делают выбор в пользу бесплатных систем, и не обременяют себя покупкой дорогих лицензий для ОС. Таким образом скачать и установить FreeBSD Вы можете абсолютно бесплатно.
  • Открытый исходный код. Любой желающий может вносить свои правки в код и выполнять желаемые проверки без проблем, правда, есть некие ограничения, но они слишком минимальны.
  • Качественность. Многие популярные на весь мир веб-сервисы используют данную систему, что есть беспорным подтверждением качества работы. За оценками экспертов почти 40% серверов на рынке СНГ работают именно на данной ОС.
  • Надежность. Данный фактор обеспечивается монолитным ядром и законченной логической структурой ОС, которая по сути является целостной.

Структура системы FreeBSD:

  1. Библиотека С используется в качестве системного интерфейса программирования.
  2. Ядро, которое предназначено для планировки всех процессов, управлением памяти, работы с устройствами и тп.
  3. Разнообразные файловые утилиты, компиляторы, оболочки, редакторы связей, и другие программы для конечного пользователя, некоторые из них основываются на коде GNU.
  4. За графический дизайн отвечает встроенная в FreeBSD X Window.
  5. Огромный выбор системных и прикладных программ.

Разработкой FreeBSD занимаются почти 4 тыс. добровольцев , которые и выпускают оновленные версии. Всего релизов насчитывают десять, последний из которых был выпущен 13 августа 2015 года. Но все-таки система не является столь популярной, как к примеру Linux. Давайте разберемся в причинах, почему FreeBSD имеет небольшое количество пользователей. В превую очередь, это “заслуга” разработчиков, которые занимаются шлифовкой кода системы, и очень мало времени уделяют рекламе своего продукта. Кроме того, они мало заботятся о рядовом пользователи и не упрощают процесс настройки и установки ОС, что для многих является ключевым этапом при выборе операционной системы. Ведь настроить Linux намного проще чем FreeBSD .

Недостатки системы FreeBSD .

Среди минусов ОС пользователи чаще всего выделяют сложность установки и настройки системы, но с приходом определенных навыков в администрировании, этот недостаток становится несущественным. Кроме того, для изучения работы FreeBSD недостаточное количество литературы и трудный доступ к документации. Если Вы все-таки хотите, чтобы данная ОС работала на вашем выделенном сервере, можете обратиться в нашу тех.поддержку и они быстро и качественно установят и настроят FreeBSD. Также достаточно будет просто при сервера выбрать FreeBSD желаемой ОС и она будет предустановлена на Ваш сервер.

Вывод. Если Вы выбираете ОС для своего сервера, прочитайте следующие советы, которые, надеемся, помогут Вам сделать правильный выбор. Часто можно встретить информацию на интернет-ресурсах, что FreeBSD улучшает производительность, это действительно так, но данное правило не следует считать универсальным. Хорошая репутация FreeBSD вполне заслуженная благодаря предоставленному качеству ОС. И последнее, если Вы уже используете выбранную ранее ОС, не стоит ее менять.

К Вашему сведению, ОС FreeBSD (9,10) уже предустановленна на наших ВПС серверах и Вы сможете ощутить все преимущества данной системы, сделав заказ виртуального сервера в компании Hyper Host™ . ?

6486 раз(а) 13 Сегодня просмотрено раз(а)

В сфере современного программного обеспечения с открытыми исходниками слово «Linux» практически превратилось в синоним понятия «операционная система», хотя мало кто знает о том, что в действительности же это далеко не единственная на сегодняшний день ОС типа Unix, исходные коды которой являются доступными для всех.

В соответствии с данными, полученными от IOSC, в 1999 году практически треть всех машин, которые были подключены к интернету, работали на основе Linux, в то время как практически 15% применяли операционную систему FreeBSD. Что это за система, и по сегодняшний день знают лишь немногие современные пользователи ПК, несмотря на все ее преимущества и широкое распространение в свое время. Стоит отметить тот факт, что многие мировые лидеры в сфере Web-услуг активно работают на данной системе. В частности, стоит отметить, что на сегодняшний день система Yahoo основана на FreeBSD. Что это дает пользователям, сами они вряд ли знают и даже задумываются, но владельцы системы уверены, что это правильное решение.

Что представляет собой BSD?

BSD расшифровывается как Berkeley Software Distribution. Именно так в своем время называлось программное обеспечение, которое в Беркли распространял в исходных кодах. При этом стоит отметить тот факт, что изначально дополнение к стандартной операционной системе UNIX - это единственное, что представляло собой FreeBSD. Что это было по сравнению с нынешней версией системы?

На основе версии 4.4 BSD-Lite создавалось несколько операционных систем, имеющих открытые исходные коды. В частности, состав этих систем включал в себя разработки других проектов, среди которых отдельного внимания заслуживает проект GNU.

Структура

Преимущества и особенности, которые имеет данная система, отличаются структурой FreeBSD. Что это за структура:

  • Ядро, которое предназначается для тщательной планировки всех процессов, управления памяти, работы с различными устройствами, а также поддержки многопроцессорных систем. При этом следует отметить тот факт, что, в отличие от ОС Linux, в данном случае есть несколько типов ядер BSD, которые отличаются разными особенностями.
  • Библиотека С, которая используется в качестве основного системного интерфейса программирования, причем основывается на коде из Беркли, а не из проекта GNI.
  • Всевозможные файловые утилиты, компиляторы, оболочки, редакторы связей, а также другие программы конечного пользователя, при этом некоторые из них основываются на коде GNU.
  • FreeBSD UNIX - операционная система, включающая в себя X Window, которая отвечает непосредственно за Данная система применяется в преимущественном большинстве версий BSD и официально поддерживается проектом X.Org. Данная система позволяет пользователю делать выбор из нескольких графических оболочек, а также целого ряда легких оконных менеджеров.
  • Большое количество других системных и прикладных программ.

Что такое настоящий UNIX?

Стоит отметить, что сама по себе FreeBSD UNIX - операционная система всегда разная. И типы таких систем не являются клонами друг друга. Они представляют собой лишь потомков общего предка - традиционной операционной системы UNIX. Данный факт может несколько удивить, тем более если вспомнить, что разработчик этой операционной системы никогда не раскрывал широкой публике коды своих разработок.

BSD - это UNIX?

И действительно, операционная система UNIX никогда не представляла собой программное обеспечение, имеющее открытый исходный код, в связи с чем BSD определенно нельзя будет назвать системой UNIX, хотя бы потому, что графический интерфейс операционных систем является разным. Однако в то же время компания, которая разрабатывала UNIX, активно пользовалась чужими разработками, и в частности это относится к программному обеспечению, которое разрабатывалось организацией CSRG.

Первоначально дистрибутивы BSD, а также графический интерфейс операционных систем представлял собой комплексы пользовательских программ, и такая ситуация продолжалась ровно до тех пор, пока компания не заключила контракт с DARPA, подчиненным Цель данного контракта - это обновление различных коммуникационных протоколов, на которых поддерживалась компьютерная сеть агентства.

В течение 80-х годов сформировалось несколько компаний, занимающихся производством рабочих станций, при этом стоит отметить, что многие из них приобретали лицензии на использование UNIX вместо того, чтобы пробовать разрабатывать с нуля собственное программное обеспечение. В частности, стоит выделить компанию Sun, которая поступила таким образом и решила на основе версии 4.2BSD в конечном итоге выпустить собственную операционку, которая называлась SunOSTM. Когда же компания AT&T, занимающаяся разработкой UNIX, в конечном итоге решила заняться коммерческой продаже собственной операционной системы, появилась довольно аскетичная реализация - System III, за которой с течением времени последовал также выход системы System V.

По какой причине эта операционная система остается невостребованной?

Есть некоторый ряд причин, по которым сегодня FreeBSD 10 пользуется не таким широким спросом:

  • Разработчики чаще всего интересуются качеством собственного кода, причем больше его шлифовкой, а не рекламой.
  • По большому счету, популярность Linux является следствием целого ряда внешних факторов относительно данного проекта, в частности, это касается средств массовой информации, а также компаний, которые решили сформировать собственный бизнес, предоставляя услуги пользователям этой операционной системы.
  • Разработчики BSD в преимущественном своем большинстве являются более опытными по сравнению с разработчиками Linux, в связи с чем они гораздо меньше внимания уделяют тому, чтобы облегчить жизнь простым пользователям. Другими словами, настройка FreeBSD для обычного пользователя является более сложной, чем
  • В 1992 году разработчик UNIX решил подать в суд на компанию BSDI, которая занималась поставкой операционной системы BSD/386. Основной пункт обвинения в данном случае был тем, что в ОС содержался закрытый код, принадлежавший истцу, и вроде бы дело в конечном итоге было улажено за пределами суда в 1994-м, но целый комплекс вторичных тяжб даже в наши дни отравляет жизнь многим людям.
  • Есть мнение, что сами по себе проекты BSD различаются и при этом могут даже конфликтовать между собой. Данное мнение основывается на событиях, которые происходили достаточно давно.

Что лучше - Linux или BSD?

На сегодняшний день чаще всего выбирают, устанавливая сервер Apache, FreeBSD вместо традиционного для большинства других систем Linux. Для среднего пользователя разница между этими системами является удивительно малой, так как оба продукта основываются на UNIX. Обе системы разрабатываются на некоммерческой основе.

Кому принадлежит BSD?

Стоит отметить, что нет какого-то конкретного человека или же компании, который бы владел разработкой BSD. Разработка, а также последующее распространение данной системы осуществляется целой группой высококвалифицированных и при этом преданных проекту специалистов, собранных со всего мира. Определенные компоненты BSD представляют собой отдельные проекты, имеющие открытый код, который имеет свои законы и коллективы разработчиков.

Что все-таки выбрать?

Выбор между этими операционными системами является действительно достаточно сложным, поэтому можно выделить несколько советов, которые позволяют выбрать, какой вариант является оптимальным - Linux или FreeBSD. Команды в обоих случая являются довольно схожими, поэтому выбор чаще всего может строиться на основе следующего:

  • Если вами уже используется определенная Open Source ОС, то в таком случае вам не стоит даже что-то менять.
  • Системы FreeBSD могут проявлять гораздо большую производительность, но это правило не является универсальным.
  • Системы BSD отличаются довольно неплохой репутацией, и особенно это касается надежности.
  • BSD-проекты отличаются более хорошей репутацией благодаря тому, что они отличаются высоким качеством, а также полнотой доступной документации.
  • В BSD можно использовать преимущественное большинство исполнимых файлов Linux, в то время как Linux не может использовать многие выполнимые в BSD файлы.

Обеспечивает техническую поддержку, а также обслуживает FreeBSD - порты и системы - компания FreeBSD Mall, Inc.