RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
При работе за прокси, люди испытывают неудобство при обновлении и установке портов. Хотя, наверное, догадываются, что FreeBSD может элегантно обходить эти камни, но не знают как. Ну что же, поможем им еще полюбить фри за ее разносторонность. Обновление портов будем производить CVSUPом с использованием prtunnel. Это может быть из-за отсутствия NAT, например, при некоторых конфигурациях спутникового интернета, религиозного вероисповедания начальства и т.п. Загружать исподники будем традиционно с помощью утилиты fetch только укажем, куда ей ходить
Обновление портов CVSUP через прокси. Prtunnel это:
prtunnel is a program that can tunnel TCP/IP connections in a variety of ways,
including through HTTP and SOCKS5 proxy servers. Some if its possible uses include:
1) Tunneling TCP connections from client programs to a remote server through an
HTTP or SOCKS5 proxy (useful if you're behind such a proxy and want to use a program
that doesn't have native proxy support)
2) Tunneling TCP connections from SOCKS-capable client programs through an HTTP or
SOCKS5 proxy
3) Tunneling TCP connections froman IPv4 client program toanIPv6 server and
vice-versa
4) Forwarding TCP connections
5) Running as a simple SOCKS proxy server
prtunnel is open source software available under a BSD-style license. It has been
developed and used under Linux and BSD-based operating systems.
Как видите, prtunnel можно применять для различных нужд. Не только для обновления портов, однако в данном случае, мы заставим его работать именно для обновления портов.
Инсталлируем
# cd /usr/ports/
# make search name='prtunnel'
Port:prtunnel-0.2.7
Path:/usr/ports/net/prtunnel
Info:Tunnel forTCP connections using an HTTP or SOCKS5 proxy
Maint:vd@FreeBSD.org
B-deps:
R-deps:
WWW:http://joshbeam.com/software/prtunnel.php
# cd //usr/ports/net/prtunnel && make install clean
~~~~~~~~~~~~~~~~~~~~~~~~
===> SECURITY REPORT:
This port has installed the following files, which may act as network
servers and may therefore pose a remote security risk to the system.
/usr/local/bin/prtunnel
If there are vulnerabilities in these programs there may be a security
risk to the system. FreeBSD makes no guarantee about the security of
ports included in the Ports Collection. Please type 'make deinstall'
todeinstall the port if this is a concern.
Formore information, and contact details about the security
status of this software, see the following webpage:
http://joshbeam.com/software/prtunnel.php
===>Cleaning for prtunnel-0.2.7
Настраиваем CVSUP для работы с prtunnel. Теперь необходимо поправить конфиг cvsup.conf, чтобы он смог работать через туннель В default host нужно указать 127.0.0.1, а не cvsupX.FreeBSD.org.
*default host=127.0.0.1
*default base=/usr
*default prefix=/usr
*default release=cvs
*default tag=RELENG_6_3
*default delete use-rel-suffix
*default compress
src-all
*default tag=RELENG_6_3
*default tag=.
ports-all
doc-all
Создаем туннель синхронизируемся и закрываем его. Создаем туннель с cvsup5.FreeBSD.org
prtunnel daemon started Waiting for connection to port 5999...
Флаги: -t <Типр прокси> По умолчанию стоит http (default), но можно использовать socks5, direct, direct6 -H адрес прокси -P порт прокси -u имя пользователь -p пароль пользователя -D используемый порт
Запускаем cvsup.
# cvsup -g -L 2 -z /etc/cvsup.conf
После синхронизации незабываем закрыть туннель.
killall -9 prtunnel
Использования nc в качестве прокси для cvsup и csup. Есть еще один метод синхронизации портов с использованием netcat. В /etc/rc.conf добавляем:
Установка портов через прокси. Как было упомянуто выше, будем использовать утилиту fetch.
# мan 3 fetch
нам говорит следующее:
EXAMPLES To access a proxy server on proxy.example.com port 8080, set the HTTP_PROXY environment variable in a manner similar to this:
HTTP_PROXY=http://proxy.example.com:8080
If the proxy server requires authentication, there are two options avail- able for passing the authentication data. The first method is by using the proxy URL: