iftop — просмотр нагрузки на сетевом интерфейсе

iftop command listens to network traffic on a named network interface, or on the first interface it can find which looks like an external interface if none is specified, and displays a table of current bandwidth usage by pairs of hosts. iftop is a perfect tool for remote Linux server over ssh session.

iftop must be run by the root or the user who has sufficient permissions to monitor all network traffic on the network interface.

Type iftop command at tge shell prompt to display traffic:

# iftop


However, iftop works best when you use filters. For example, if you want to find out how much bandwidth users are wasting or trying to figure out why the network is slow,

# iftop -f icmp

You can display or analyses packet flowing in and out of the 192.168.1.0/24 network:

# iftop -F 192.168.1.0/24

Disable output for DNS traffic by using filter code such as:

# iftop -f 'not port domain'

iftop has many options read man page for further information.

Starcraft 2 на Linux

Okie dokie — so I’ve mentioned before that I play Starcraft 2 under my Linux install with no issues. Since the game’s official release a few days ago I have been getting a good bit of traffic on those two pages — so I figured I would put together a quick HOWTO for getting Starcraft 2 working on your Linux distro of choice. The game runs under Wine 1.2 and/or Crossover Games 9.1 with a small bit of work (the latter is easier to make work).

Since free is good I’ll talk about the Wine HOWTO first. First off, download and install Wine 1.2 on your system. Next, run the following commands in terminal:

cd ~/Downloads
 wget http://winezeug.googlecode.com/svn/trunk/winetricks
 chmod +x winetricks
 ./winetricks droid fontfix fontsmooth-rgb gdiplus gecko
 ./winetricks vcrun2008 vcrun2005 allfonts d3dx9 win7
 winecfg

In the configuration Window it opens go to the libraries tab and enter mmdevapi in the new override for library box and click add. Now scroll through the existing over rides list for mmdevapi click edit and set it to disabled. Finally click on the audio tab and set it to alsa.

If you still have audio issues after doing this and your distro uses Pulse Audio (Ubuntu does) install Wine 1.2 that has been built with pulse audio support with the following commands in terminal:

sudo add-apt-repository ppa:c-korn/ppa
sudo apt-get update && sudo apt-get upgrade

As of Crossover 9.1 Starcraft 2 is listed as «officially support» and as such you will find that it has an entry in the automated games installer. The only issue is that after the game has actually finished installing the StarCraft 2 process hangs around — meaning Crossover never actually knows that the game has finished installing and thusly never creates menu entries for it. Thank fully there is a simple fix for this — after Starcraft 2 has finished installing, open up your system monitor and look for any rogue Starcraft 2 processes and kill them off. After you have done this the CXGames installer will know that it has finished installing and will create the menu entries as it should.

If you have audio issues under Crossover you can open your Starcraft 2 bottle’s WineCFG, select the audio tab, and set hardware acceleration from full to emulated.

Also — if you are trying to install from the retail CD (with Wine or Crossover) you might need need to manually mount the disc due to an issue with its split PC/Mac auto mounter. To do this run the following two commands in terminal:

sudo umount /media/SC2*
sudo mount -t udf -o ro,unhide,uid=$(id -u) /dev/cdrom /media/cdrom

Note some drives may use /dev/sr0 (or other mount points) instead if /dev/cdrom. If you are having issues getting it working scroll through the comments for some good tips — if you are still unable to get it working after that, make a comment of your own 🙂

Also — if you are attempting to get the game running with an ATI card, it was suggested in the comments that making it run under a virtual desktop allows it to run on some systems it otherwise fails to work on.

I tested the above methods on Ubuntu 10.04, Linux Mint Debian, and Chakra — but they should be applicable to any modern Linux distribution. Have any issues feel free to drop a comment below and I will do my best to lend a hand debugging. Happy gaming!

~Jeff Hoogland

Отключение IPv6 в Linux

В ядрах до 2.6.29 (не уверен!) этот протокол собирался отдельным модулем, поэтому его выключение было возможно помещением в /etc/modprobe.d/blacklist строчку blacklist ipv6.

В ядрах 2.6.30 протокол ipv6 собирался уже на уровне ядра и отключение его подразумевало пересборку ядра без оного.

В ядрах 2.6.31 хоть протокол и размещается в ядре, но предусмотрена возможность отключить его опцией при запуске ядра:

В GRUB’е первом ищем /boot/grub/menu.lst и дописываем строчку запуска ядра (кроме обычных опций ro quiet splash) ipv6.disable=1. Перегружаем компутер и проверяем ifconfig.

В GRUB2 идём в /etc/default/grub и ищем строчку с опциями по умолчанию «quiet splash» и дописываем опцию ipv6.disable=1. Должно получиться вот так: «quiet splash ipv6.disable=1».
И запускаем:

$ sudo update-grub

Перегружаем компутер и проверяем ifconfig.

Теперь я не отключаю ipv6, а просто запрещаю его iptables’ом.

$ ip6tables -S
-P INPUT DROP
-P FORWARD DROP
-P OUTPUT DROP
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT

madWiMAX — использование Yota в Linux

madWiMAX — реверс-инжинированный Linux драйвер для устройств доступа к сетям mobile WiMAX (802.16e), выполненных на основе чипа Samsung CMC-730. На данный момент поддерживаются следующие устройства:

  • Samsung SWC-U200
  • Samsung SWC-E100
  • Samsung SWM-S10R

madWiMAX есть в официальном репозитории debian’а.

$ aptitude install madwimax

Настройка йоты проста.

После покупки йота-модема я зарегистрировал его из-под виндовс в личном кабинете, а потом уже сунул в дебиан. Регистрация элементарна и, думаю, что даже из lynx можно было её проделать.

Говорим спасибо Александру Гордееву и остальным разработчикам за madwimax. Говорим спасибо Петру Курышеву за сборку deb пакетов и качаем отсюда http://peter.infosreda.com/ru/2009/03/23/ubuntu-deb-madwimax-0_1_0 два пакета:

$ wget http://peter.infosreda.com/libusb1_1.0.0-1_i386.deb
$ wget http://peter.infosreda.com/madwimax_0.1.0-1_i386.deb

и устанавливаем их:

$ dpkg -i libusb1_1.0.0-1_i386.deb
$ dpkg -i madwimax_0.1.0-1_i386.deb

«Для того, чтобы модем автоматически соединялся с сетью Yota при включении в USB разъем, потребуется раскомментировать последние две строчки (их там всего четыре) файла /etc/udev/rules.d/z60_madwimax.rules»

Настроил NAT для людей в локальной сетке. Все вздохнули облегчённо, но было замечено, что многие сайты не открываются. Спасибо http://x4da.wordpress.com/articles/madwimaxiptablesdhcp/ за описание и разрешение проблемы:

«Пришлось добавить

iptables -t mangle -A POSTROUTING -p tcp –tcp-flags SYN,RST SYN -o wimax0 -j TCPMSS –clamp-mss-to-pmtu

Это правило просто отключает бит DF.»

Была засада — пропал интернет. Запустил на серваке lynx www.rambler.ru и увидел страницу йоты, где было написано про то, что «если вы видите эту страницу, то оплатите…, проверьте…, зарегистрируйте модем…, выньте и всуньте модем…».

Попробовал вынуть/всунуть — помогло. В первый раз, правда, слишком быстро вынул/всунул. Потом попробовал с пару-тройку секундным запозданием и всё заработало.

Вторая засада — при подключении к Йоте по DHCP назначаются новые йотовые DNS, которые прописываются в /etc/resolve.conf. А надо, чтобы доменные оставались, так как есть домен и второй провайдер.

Нагуглил  http://evilzipik.blogspot.com/2009/01/resolvconf-dhcp.html

Чтобы этого не происходило нужно:

в /etc/dhcp3/dhclient-enter-hooks.d/ создать пустой файл, например, nodnsupdate

сделать его исполняемым

$ chmod +x /etc/dhcp3/dhclient-enter-hooks.d/nodnsupdate

в него занести:

#!/bin/sh
make_resolv_conf(){
 :
}

И ещё. Когда запускаю madwimax -vv для поиска места с максимальным усилением сигнала, то сыпятся сообщения bulk write error. Поменял USB кабель на толстый экранированный. Эти ошибки пропали.

И ещё. Недавно переустановил на сервере debian x32 на debian amd64. Через какое-то время обнаружил, что не могу зайти в gmail почту через https. Не знаю связаны ли эти события. Уменьшил MTU на интерфейсе своей убунты до йотовских значений — 1386 байт. Почта заработала. (временно для проверки увеличил до 1387 байт — почта перестала работать) Примечательно, что под виндами спокойно вхожу в почту. Только одно предупреждающее сообщение и дальше можно работать. Видимо из-за автоматического определения размера MTU.

2010-09-10. С начала сентября 2010 года йота в ауте. Скорость мизерная. Работать невозможно. Ищу дешёвого проводного провайдера.

2010-11-02. Провайдера нашёл, но и с йотой более-менее разобрался. Запускаю:

$ madwimax -vv

и смотрю на значение CINR. Начинаю искать модемом на USB удлинителе максимальное значение CINR. Меньше пяти — плохо. Начиная с 6, 7 — более-менее. 9-10 — хорошо. Это пока максимальное значение достигнутое мной. Значение достигается поворотом модема вокруг вертикальной оси градусов на 45 от оконного стекла и сдвигом его на пару сантиметров влево — вправо около определённой точки на подоконнике.)) Если сигнал есть, но инет тормозной, то передвигаю модем в другую точку на подоконнике, где он цепляется к другой точке доступа. Есть вероятность, что через эту точку доступа инет будет более быстрым.

После испытаний и прерывания Ctrl-C запущенного madwimax -vv, необходимо переткнуть модем, чтобы модем переинициализировался.

Ссылки:

http://peter.infosreda.com/ru/2009/03/23/ubuntu-deb-madwimax-0_1_0
http://x4da.wordpress.com/articles/madwimaxiptablesdhcp/

Настройка APC UPS

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

$ aptitude install apcupsd

В /etc/apcupsd/apcupsd.conf правим соответствующие строчки:

UPSCABLE usb
UPSTYPE usb

Запускаем демон:

/etc/init.d/apcupsd start

apcaccess для вывода информации по UPS.

Ещё команда для теста UPS, для изменения даты смены батареи и т.п. apctest.

Работает после остановки демона apcupsd.

Проблемы:

Остановил apcupsd и дал команду apctest, а в ответ:

# apctest
 2009-12-14 12:28:11 apctest 3.14.4 (18 May 2008) debian
 Checking configuration ...
 Attached to driver: usb
 sharenet.type = DISABLE
 cable.type = USB_CABLE
You are using a USB cable type, so I'm entering USB test mode
mode.type = USB_UPS
Setting up the port ...
apctest FATAL ERROR in device.c at line 70
Unable to create UPS lock file.
If apcupsd or apctest is already running,
please stop it and run this program again.
apctest error termination completed

Запустил apcuspd и дал команду apcaccess, в ответ:

# apcaccess
Error reading status from apcupsd @ localhost:3551: Connection timed out

Остановил apcupsd и проверил:

# ps aux | grep apc
 root 2509 0.0 0.0 193356 1148 ? Ssl Dec13 0:03 /sbin/apcupsd
 root 6739 0.0 0.0 7236 848 pts/1 S+ 12:55 0:00 grep apc

Убил процесс /sbin/apcupsd:

root@deb5:/var/run# kill 2509

И всё заработало.

named.conf.options

Содержимое named.conf.options:

options {
 directory "/var/cache/bind";        //Понятно, что это кэш для запросов
 forwarders {                       //Секция для форвардинга неразрешённых
     10.0.0.1;                      //запросов. Т.е. резольвинг адресов будет
 10.0.15.1;                     //выполняться указанными здесь серверами.
 };                             //Чаще всего указываем DNS-сервера провайдера.

auth-nxdomain no; # conform to RFC1035        //Что-то отключённое. Потом посмотрим.

listen-on {
     127.0.0.1;                     //Наш DNS-сервер будет принимать запросы
     192.168.0.1;                    //только на внутренних адресах.
    };
 };

lm-sensors

Установка

# apt-get install lm-sensors

На сайте http://www.lm-sensors.org советуют использовать последний lm-sensors 3.1.1.

  • Удалил текущий lm-sensors.
  • Скачал из нестабильной ветки Debian пакет с lm-sensors 3.1.1.
  • Попробовал установить скаченный пакет dpkg -i lm-sensors*.deb
  • Обнаружилась неудовлетворённая зависимость -> libsensors4.
  • Скачал оттуда-же пакет libsensors4 и установил. В результате пакет lm-sensors заработал.
  • Запустил sensors-detect и обнаружил:
  • w83627ehf и coretemp
  • Разрешил добавить эти строки в /etc/modules.
  • Перезагрузил компутер.
  • sensors заработал.
Настройка

В большинстве случаев настройка отслеживания за температурами, скоростью вращения вентиляторов и т.д. проста.

$ sensors-detect

На все вопросы отвечаем энтером.

В конце скрипт предложит внести в /etc/modules модули для найденных системных датчиков. Согласимся. Потом можно загрузить модули без перезагрузки компутер modprobe <название модуля>. И опросим датчики командой sensors.

Если датчики показывают неправильные значения, то редактируем /etc/sensors.conf.


Переподключение к сеансу SSH

В настройках SSH поставил «не завершать сеанс при разрыве». После переподключения не знаю как присовокупиться к висящему сеансу.

В инете рекомендуют использовать screen, который позволяет использовать несколько псевдотерминалов и подключаться к ним по мере необходимости.
http://libc6.blogspot.com/2008/09/screen-terminal.html

Попробую использовать его вместо bash, как оболочку по умолчанию для ssh-сеансов.

Как настроить автоматический запуск screen при входе по ssh

Достало постоянно вводить screen -dR при входе на удалённую машину. Погуглив нашёл простое решение. В конце ~/.bashrc дописать:

 if [ -z "$STY" ]; then
 exec screen -dR
 fi

У меня чуть более продвинутый вариант 🙂

В конец .bashrc надо добавить

if [ "$SSH_TTY" ]; then
 if [ ! "$STY" ]; then
  CHOICE=`SCREEN/choose`
  if [ -z "$CHOICE" ];
  then
   exec screen
  else
   exec screen -dr $CHOICE
  fi
 fi
fi

и создать файл ~/SCREEN/choose:

#!/bin/bash
USERNAME=`whoami`
i=0
declare -ax SCREENS
SOCKETS=`find /var/run/screen/S-$USERNAME -type p`
if [ -z "$SOCKETS" ];
then
exit 0
fi
for S in $SOCKETS
do
((i=$i+1))
S=`basename $S`
SCREENS[$i]=`screen -ls | grep $S | perl -e '$s=<>; $s =~ s/^\\t(.*)\s/$1/; $s =~ s/\s/_/g; print $s'`
done
MENU=""
for ((j=1; j do
MENU="$MENU $j ${SCREENS[$j]}"
done
WHICH=`dialog --stdout --menu Select: 0 0 0 $MENU`
echo ${SCREENS[$WHICH]} | sed -e 's/_(.*)$//'

При логине будет предлагаться меню со списком имеющихся сессий screen, можно выбрать нужную либо создать новую. Если запущенных screen’ов нет, автоматически запустится новая сессия.

Единственная (вроде бы) зависимость — нужно поставить dialog.

Ссылки:
http://www.truediamon.ru/content/kak-nastroit-avtomaticheskij-zapusk-screen-pri-vhode-po-ssh