Вот такой простой скрипт:
#!/bin/sh
retval=`/sbin/mount | grep /mnt/cdrom`
if [ -n "$retval" ];
then /sbin/umount /mnt/cdrom 1> /dev/null 2> /dev/null
if [ "$?" -ne 0 ];
then echo "Не могу размонтировать CDROM"
else echo "Размонтировал CDROM"
eject /dev/cdrom
fi
else /sbin/mount /dev/cdrom 1> /dev/null 2> /dev/null
if [ "$?" -ne 0 ];
then echo "Не могу смонтировать CDROM"
else echo "Примонтировал CDROM"
fi
fi
П.С. копируем в каталог /sbin под именем cdm. Сам определяет состояние
Исторически сложилось, что многие российские провайдеры предоставляют подключение к интернет через VPN-соединение. Соответственно, пользователям Linux для этого приходится настраивать подключение по PPTP. Относительно недавно у некоторых провайдеров появилась возможность подключения по протоколу L2TP. Не вдаваясь в технические подробности, скажу, что для пользователей Linux теперь появилась возможность кардинально улучшить свое интернет-соединение. Забегая вперед, замечу, что результат превзошел все мои ожидания.
Такая возможность появилась с поддержкой OpenL2TP в последних ядрах Linux. В этой заметке пойдет речь о настройке L2TP-соединения в Ubuntu Linux на примере провайдера Corbina Telecom. Для других провайдеров, думаю, настройка будет не сильно отличаться. Выражаю огромную благодарность sdvn, написавшему очень толковую инструкцию по настройке.
Настройка L2TP-соединения
1. Вначале необходимо установить пакет xl2tp. В репозиториях Ubuntu 8.04 он уже есть.
$ sudo apt-get install xl2tp
2. Редактируем файл /etc/xl2tpd/xl2tpd.conf:
$ sudo gedit /etc/xl2tpd/xl2tpd.conf
Необходимо прописать в него следующее:
[global]
access control = yes
[lac corbina]
lns = l2tp.corbina.net
redial = yes
redial timeout = 1
require chap = yes
require authentication = no
name = <corbina-user-name-without-brackets>
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
require pap = no
autodial = yes
где <corbina-user-name-without-brackets>
- ваше имя пользователя в Corbina.
3. Редактируем /etc/ppp/options.xl2tpd:
$ sudo gedit /etc/ppp/options.xl2tpd
Прописываем в него:
unit 0
name <corbina-user-name-without-brackets>
remotename l2tp
ipparam corbina
connect /bin/true
mru 1460
mtu 1460
nodeflate
nobsdcomp
persist
maxfail 0
nopcomp
noaccomp
defaultroute
replacedefaultroute
4. В /etc/ppp/chap-secrets добавляем строку (если ее еще там нет):
<corbina-user-name-without-brackets> * <corbina-password-without-brackets>
5. Вносим изменения в /etc/init.d/xl2tpd:
$ sudo gedit /etc/init.d/xl2tpd
Необходимо поменять секцию start следующим образом:
start)
if !([ -f /var/run/xl2tpd/l2tp-control ]) ; then
mkdir -p /var/run/xl2tpd
touch /var/run/xl2tpd/l2tp-control
fi
echo -n "Starting $DESC: "
start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
--exec $DAEMON -- $DAEMON_OPTS
echo "$NAME."
route add -host <host l2tp.corbina.ru> gw <default-gw>
route add -host <dns-server-1> gw <default-gw>
route add -host <dns-server-2> gw <default-gw>
Здесь
$ host l2tp.corbina.ru
$ cat /etc/resolv.conf
$ route -n
Или уточнить их в службе технической поддержки провайдера. Очень важно, чтобы маршруты были прописаны правильно.
6. Прописываем в /etc/network/interfaces свои настройки сети для карточки:
auto lo eth0
iface lo inet loopback
address 127.0.0.1
netmask 255.0.0.0
iface eth0 inet dhcp
7. Удаляем network-manager из системы, чтобы не мешал работать стандартной дебиановской сетевой системе и позволил проинициализировать eth0 до того, как будет подниматься ppp0 через xl2tpd:
$ sudo aptitude remove network-manager
8. Теперь можно перезагрузиться и посмотреть на результат. Если все нормально, то по команде ifconfig мы получим три интерфейса - lo, eth0 и ppp0. Что и требовалось.
9. В случае, если необходимо расшарить интернет на другие машины, можно в /etc/init.d/xl2tpd в секцию start после route -add добавить строчки:
echo 1 >/proc/sys/net/ipv4/ip_forward
iptables -F
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -I POSTROUTING -o ppp0 -j MASQUERADE
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
Возможные проблемы
В случае неправильных настроек может наблюдаться следующая проблема: соединение устанавливается, но через минуту-две обрывается либо без каких-либо сообщений, либо с сообщением в /var/log/messages:
No response to 4 echo-requests
В таком случае можно попытаться сделать следующее:
- Убедиться, что network-manager удален из системы. Кроме того, убедиться, что нет еще каких-либо факторов, мешающих стандартной дебиановской сетевой системе. Таковым может являться firestarter или некорректные настройки dnsmasq или ipmasq.
- Убедиться, что указан верный маршрут к L2Tp-серверу провайдера. В случае чего уточнить его в службе технической поддержки.
Если же интерфейс ppp0 успешно поднимается и не обрывается, но сайты не открываются, то проблема скорее всего в DNS-серверах. Нужно указать их правильные адреса в маршрутах.
Результаты
В моем случае результаты оказались следующими.
При работе через PPTP:
При работе через L2TP:
Результат потрясающий и говорит сам за себя.