Кажется, что Вы забываете к NAT ПЕРЕДАВАТЬ трафик. Попытайтесь добавить следующее правило:
$IPT -t nat -A POSTROUTING -o eth0 -j SNAT -to-source $PUBLICIP
Это удостоверится что весь транспортный выход eth0
не пропустит внутренние IP-адреса и должен решить Вашу проблему.
Всего наилучшего,
João Miguel Neves
Вам нужно заменить / bin / sh на что-то ; это ключ. Если вы можете войти в загрузчик FreeBSD во время запуска (с приглашением «ok»), попробуйте что-нибудь вроде этого:
set init_shell=/bin/csh
unset init_script
unset init_path
Я получил эту информацию из загрузчика (8) со страниц руководства FreeBSD (онлайн). Я этого не делал, но это должно сработать (при условии, что / bin / csh присутствует и исполняется).
Если у вас есть сервер FreeBSD 8.2, работающий в другом месте, вы можете попробовать украсть / bin / sh с этого source и поместите его в систему, где это необходимо.
Или же получите статически построенный / bin / sh и вставьте его вместо него; со статически созданным двоичным файлом проблем с библиотекой не возникнет.
РЕДАКТИРОВАТЬ: Я должен был заметить: если вы загружаетесь в / bin / csh, вам все равно нужно что-то использовать вместо / bin / ш. Вы можете получить его через Интернет или скопировать с другого компакт-диска, пакета или чего-то подобного; использование / bin / csh для загрузки приведет вас к машине. Копирование по сети требует, чтобы вы подняли сеть; в противном случае скопируйте с CDROM.
Лучшие способы избежать этого в будущем:
Выполните все три.
Хорошо, сначала лекция:
НЕ БЕСПОКОИТЬ СИСТЕМУ БИНАРИИ
Все, что находится в / bin
, / sbin
и / rescue
во FreeBSD, следует оставить в покое. Даже если вы знаете, что делаете (если вы знаете, что делаете, вы также знаете, что их следует оставить в покое. Они действительно важны - все они!)
НЕ delete / bin / sh
. НИКОГДА. На любой * системе NIX, в которой он есть.
В самом деле. Не делай этого. МНОЖЕСТВО сценариев полагается на то, что / bin / sh
является оболочкой Борна. Он разбивает вселенную.
Если вы ДЕЙСТВИТЕЛЬНО хотите, вы можете безопасно заменить его копией из bash
, как предложил Адам Z, но если вы собираетесь это сделать, вы можете захотеть статически ссылка на эту копию bash
- она включает множество библиотек, и у вас их может не быть, пока система не будет запущена и не смонтирован / usr / local
. 1230] Как исправить беспорядок? Два варианта:
Вариант 1: Немного болезненно
Зайдите на http://www.freesbie.org/ (или на FreeBSD LiveCD по вашему выбору - вы, вероятно, даже можете использовать восстановление CD с http://www.freebsd.org для этого). Возьмите LiveCD, запишите его и загрузите.
Когда вы войдете в среду LiveCD, смонтируйте корневой раздел вашей заблокированной системы,
Вместо символической ссылки скопируйте ваш bash
в / bin / sh
. Используйте команду ldd
, чтобы найти любые библиотеки, которые могут находиться в файловых системах, отличных от rootfs, и скопировать их также в rootfs.