Еще несколько месяцев назад мой рабочий стол с Linux выполнял двойную функцию в качестве маршрутизатора для моей домашней сети, и все было хорошо.
Затем я настроил небольшую Linux-машину в качестве автономного маршрутизатора, и с тех пор у меня возникает множество разорванных соединений.
Подобные ошибки встречаются часто (эта ошибка во время сеанса rsync):
Write failed: Broken pipe
rsync: writefd_unbuffered failed to write 4 bytes to socket [sender]: Broken pipe (32)
rsync: connection unexpectedly closed (1576 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(601) [sender=3.0.7]
Мои сеансы обмена мгновенными сообщениями отключаются и повторно подключаются часто. Сеансы SSH сбрасываются, и иногда веб-страницы не загружаются.
Это всегда активное соединение , которое потеряется (в отличие от проблем , устанавливающих новые связи). И это чаще всего, когда мое интернет-соединение занято - с точки зрения количества активных соединений, а не с точки зрения пропускной способности. Например, запуск bittorrent усугубляет проблему, но загрузка или выгрузка одного большого файла, который занимает 100% моей полосы пропускания, похоже, не вызывает проблему. Я всегда могу восстановить соединение немедленно (хотя новое соединение часто также быстро сбрасывается).
У меня 8мбит (ха! да правильно!) подключение кабельного модема от Telecable (одна из крупнейших кабельных компаний в Мексике). Я предположил бы, что это была проблема с их обслуживанием, за исключением того, что у меня нет проблемы, когда я не использую мой маршрутизатор.
Поэтому мне кажется очевидным, что я достиг своего рода предела "максимальных подключений" в моем маршрутизаторе Linux
В прошлом я сталкивался с подобными проблемами на очень загруженных системах, и увеличение netconn_max (или аналога в старых ядрах) всегда решало проблему. Но на этот раз это не проблема. Это сразу после серии отключений:
/proc/sys/net/ipv4/netfilter/ip_conntrack_max: 48324
/proc/sys/net/ipv4/netfilter/ip_conntrack_count: 75
Для чего стоит вывод `iptables -L -t nat ':
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- anywhere anywhere multiport dports 6881:6999 to:10.0.3.5
DNAT udp -- anywhere anywhere multiport dports 6881:6999 to:10.0.3.5
DNAT tcp -- anywhere anywhere tcp dpt:4380 to:10.0.3.12
DNAT udp -- anywhere anywhere udp dpt:4380 to:10.0.3.12
DNAT tcp -- anywhere anywhere tcp dpt:49181 to:10.0.3.12
DNAT udp -- anywhere anywhere udp dpt:49181 to:10.0.3.12
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Что еще мне нужно проверить?
Редактировать: загрузить среднее значение и использование памяти, как требуется:
total used free shared buffers cached
Mem: 755 747 8 0 154 504
-/+ buffers/cache: 88 667
Swap: 1903 0 1903
18:32:19 up 4 days, 19:53, 2 users, load average: 0.00, 0.00, 0.00
Я также забыл включить вывод uname -a
:
Linux reep 2.6.32-5-686 #1 SMP Wed Jan 12 04:01:41 UTC 2011 i686 GNU/Linux