Прежде чем разбираться со squid'ом, надо убедиться, что все остальное работает. А именно:
Если же связь изнутри к Proxy-машине есть, и эта Proxy-машина может общаться с внешним миром, переходим к настройке squid'а. Я проверял на squid-1.1.20. Но, в других версиях (если они не намного древнее) должно быть примерно так же.
Squid надо ставить из packages или ports, тогда есть уверенность, что все его компоненты разложаться по нужным директориям, как это принято именно во FreeBSD. Должно получиться примерно следующее:
Для начала squid.conf можно не сильно не копать. Там стоят значения "по умолчанию", они вполне приемлимы. Единственное, что я советую - определится, сколько мегабайт диска вы согласны выделить под кэш. По умолчанию 100 МB. Если у Вас напряженка с дисковым пространством, или наоборот, переизбыток, то найдите в squid.conf строчку:
cache_swap 100и поставьте подходящее значение (если строчка закоментарена знаком '#' в начале - раскоментарьте). Максимальный обьем можно оценочно определить как обьем, который можно прокачать по Вашей линии к провайдеру за сутки.
Еще одна правка, скорее всего понадобится. Я запустил squid'а, ничего не исправляя, и он тут же выдал мне в squid.out сообщение об ошибке. Смысл сообщения был такой, что "нельзя запускать от имени root, используйте cache_effective_user в конфиге". Поскольку, при старте машины squid.sh будет исполняться от имени root, то надо сделать, что он просит. То есть, найти в конфиге строчку:
cache_effective_user nobody nogroupи раскоментарить ее. Это будет означать, что в процессе работы, squid будет иметь права "псевдоюзера" nobody.
На самом деле, это не совсем правильно. Правильнее - завести нового "псевдоюзера" squid (или еще как-нибудь - www, cache ...) и в конфиге вписать именно его, а не nobody. но если это слишком сложная для Вас задача, то просто раскоментарьте строчку и все.
После этого надо будет поправить владельца для директории /usr/local/squid (ну, там где кэш и логи). Для этого выполните команду
chown -R nobody /usr/local/squid("-R означает, что меняется владелец не только директории, но и Rекурсивно обходится все содержимое поддиректорий). Если вы завели специального "псевдоюзера", то, естественно, в команде вместо nobody укажите его имя. Теперь осталось сформировать "внутреннюю структуру кэша". Кстати, если этого не сделать, то squid при запуске сам скажет вам: "запустите программу squid -z". Сделайте, как он говорит. Только учтите, что /usr/local/sbin, обычно, не прописана в PATH даже у root'а, поэтому лучше набрать полный путь
/usr/local/sbin/squid -z.Это сравнительно длительный процесс, но когда он закончится, все должно быть уже готово к запуску.
Теперь можно попытаться запустить squid. Зайдите в /usr/local/etc/rc.d и запустите ./squid.sh. У меня с этого момента все заработало. Кстати, на консоли должно появится сообщение от squid'а "Ready to serve requests" ("готов обслуживать запросы").