Howto update

This commit is contained in:
Vladimir Dubrovin 2026-04-05 00:31:45 +03:00
parent 6417f1acd1
commit d27afd05cd
2 changed files with 216 additions and 137 deletions

View File

@ -5,15 +5,14 @@
<li><A HREF="#COMPILE">Compilation</A>
<ul>
<li><A HREF="#MSVC">How to compile 3proxy with Visual C++</A>
<li><A HREF="#INTL">How to compile 3proxy with Intel C Compiler under Windows</A>
<li><A HREF="#GCCWIN">How to compile 3proxy with GCC under Windows</A>
<li><A HREF="#CMAKE">How to compile 3proxy with CMake</A>
<li><A HREF="#GCCUNIX">How to compile 3proxy with GCC under Unix/Linux</A>
</ul>
<li><A HREF="#INSTALL">Proxy server installation and removal</A>
<ul>
<li><A HREF="#INSTNT">How to install/remove 3proxy under Windows NT/2000/XP</A>
<li><A HREF="#INST95">How to install/remove 3proxy under Windows 95/98/ME</A>
<li><A HREF="#INSTUNIX">How to install/remove 3proxy under Unix/Linux</A>
<li><A HREF="#INSTDOCKER">How to use 3proxy with Docker</A>
</ul>
<li><A HREF="#SERVER">Server configuration</A>
<ul>
@ -66,35 +65,56 @@
<li><A NAME="MSVC">How to compile 3proxy with Visual C++</A>
<p>
Extract source code files from 3proxy.tgz (with WinZip or another utility).
Use nmake /f Makefile.msvc command
For 64-bit Windows use:
<pre>
nmake /f Makefile.msvc64
</pre>
For ARM64 Windows use:
<pre>
nmake /f Makefile.msvcARM64
</pre>
Binaries will be placed in the <code>bin/</code> directory.
</p>
<li><A NAME="INTL">How to compile 3proxy with Intel C Compiler under Windows</A>
<li><A NAME="CMAKE">How to compile 3proxy with CMake</A>
<p>
See <A HREF="#MSVC">How to compile 3proxy with Visual C++</A>
Use Makefile.intl instead of Makefile.msvc
</p>
<li><A NAME="GCCWIN">How to compile 3proxy with GCC under Windows</A></li>
<p>
Extract source files from 3proxy.tgz (for example with tar -xzf 3proxy.tgz command if you have tar installed)
Use make -f Makefile.win command.
If you want to use POSIX emulation Cygwin library (normally you shouldn't) - use make -f Makefile.unix instead.
Windows specific things (like installing as service) will not be available if compiled with Cygwin emulation.
CMake provides a cross-platform build system. It works on Windows (MSVC, MinGW), Linux, macOS, and BSD.
<br>Basic build steps:
<pre>
mkdir build
cd build
cmake ..
cmake --build .
</pre>
On Windows with Visual Studio, you can also generate a solution file:
<pre>
cmake -G "Visual Studio 17 2022" -A x64 ..
cmake --build . --config Release
</pre>
Optional features can be controlled with cmake options:
<pre>
cmake -D3PROXY_USE_OPENSSL=ON -D3PROXY_USE_PCRE2=ON ..
</pre>
Available options: 3PROXY_USE_OPENSSL, 3PROXY_USE_PCRE2, 3PROXY_USE_PAM, 3PROXY_USE_ODBC.
<br>Binaries will be placed in the <code>build/bin/</code> directory.
</p>
<li><A NAME="GCCUNIX">How to compile 3proxy with GCC under Unix/Linux</A></li>
<p>
Use
For Linux, use:
<pre>
make -f Makefile.Linux
ln -sf Makefile.Linux Makefile
make
</pre>
for Linux or Cygwin, Makefile.Solaris* (depending on compiler version) for Solaris
and Makefile.unix for different Unix-like OSes. On BSD-derived systems, make
For FreeBSD, use:
<pre>
ln -sf Makefile.FreeBSD Makefile
make
</pre>
For other Unix-like systems, use Makefile.unix. On BSD-derived systems, make
sure to use GNU make; sometimes it's called gmake instead of make.
<br>Compilation is tested under FreeBSD/i386, NetBSD/i386, OpenBSD/i386,
RH Linux/Alpha, Debian/i386, Gentoo/i386, Gentoo/PPC, Solaris/x86, but you
shouldn't have problems under different Solaris, BSD, or Linux-compatible systems.
For different systems, you may be required to patch the Makefile or even the source code.
If you want to use ODBC support, make sure to install ODBC for Unix, remove the -DNOODBC
option from the makefile compiler options, and add the ODBC library to the linker variable.
<br>Compilation is tested under FreeBSD, NetBSD, OpenBSD, Linux, Solaris, and macOS.
<br>For ODBC support, install Unix ODBC libraries, remove -DNOODBC from the makefile,
and add the ODBC library to the linker variable.
<br>Binaries will be placed in the <code>bin/</code> directory.
</p>
</ul>
<hr>
@ -106,11 +126,7 @@ option from the makefile compiler options, and add the ODBC library to the linke
Unpack 3proxy.zip to any directory, for example
c:\Program Files\3proxy. If needed, create a directory for storing log files,
ODBC sources, etc. Create 3proxy.cfg in the 3proxy installation directory (see <A HREF="#SERVER">Server configuration</A>).
If you use 3proxy before version 0.6, add the
<pre>
service
</pre>
string into 3proxy.cfg. Now, start a command prompt (cmd.exe).
Now, start a command prompt (cmd.exe).
Change to the 3proxy installation directory and run 3proxy.exe --install:
<pre>
D:\>C:
@ -118,8 +134,7 @@ C:\>cd C:\Program Files\3proxy
C:\Program Files\3proxy>3proxy.exe --install
</pre>
Now, you should have the 3proxy service installed and running. If the service is not
started, remove the "service" string from 3proxy.cfg, run 3proxy.exe manually
and correct all errors.
started, run 3proxy.exe manually and correct all errors.
</p><p>
To remove 3proxy, run 3proxy --remove:
<pre>
@ -129,40 +144,75 @@ C:\Program Files\3proxy>net stop 3proxy
C:\Program Files\3proxy>3proxy.exe --remove
</pre>
Now you can simply remove the 3proxy installation directory.
</p>
<li><A NAME="INST95">How to install/remove 3proxy under Windows 95/98/ME</A>
<p>
Unpack 3proxy.zip to any directory, for example
c:\Program Files\3proxy. If needed, create a directory for storing log files,
ODBC sources, etc. Create 3proxy.cfg in the 3proxy installation directory (see <A HREF="#SERVER">Server configuration</A>).
Remove the string
<pre>
service
</pre>
from 3proxy.cfg and add
<pre>
daemon
</pre>
if you want 3proxy to run in the background.
Create a shortcut for 3proxy.exe and place it in the autostart folder or add
it to the registry with regedit.exe:
<br>HKLM\Software\Microsoft\Windows\CurrentVersion\Run</br>
Type: String
<br>3proxy = "c:\Program Files\3proxy.exe" "C:\Program Files\3proxy.cfg"<br>
You must use quotes if the path contains spaces. If necessary, restart Windows.
If the service is not started, check the log. Remove the "daemon" command from 3proxy.cfg,
start 3proxy.exe manually and correct all errors.
</p>
<li><A NAME="INSTUNIX">How to install/remove 3proxy under Unix/Linux</A>
<p>
Compile 3proxy (see <A HREF="#COMPILE">Compilation</A>). Copy
executables to any appropriate location (for example, /usr/local/3proxy/sbin
for servers and /usr/local/3proxy/bin for utilities).
Create /usr/local/etc/3proxy.cfg.
(see <A HREF="#SERVER">Server configuration</A>).
You can change the default configuration file location by specifying the configuration file
in the 3proxy command line.
Add 3proxy to the system startup scripts.
<b>Using Makefile:</b>
<br>Compile 3proxy (see <A HREF="#COMPILE">Compilation</A>) then run:
<pre>
sudo make install
</pre>
This installs binaries to <code>/usr/local/3proxy/sbin/</code>, configuration to <code>/etc/3proxy/</code>,
and sets up chroot directories. Default configuration file is <code>/etc/3proxy/3proxy.cfg</code>.
</p>
<p>
<b>Using CMake:</b>
<pre>
mkdir build && cd build
cmake ..
cmake --build .
sudo cmake --install .
</pre>
</p>
<p>
<b>Using pre-built packages from GitHub:</b>
<br>Download .deb or .rpm packages from <a href="https://github.com/3proxy/3proxy/releases">GitHub Releases</a>.
<br>For Debian/Ubuntu:
<pre>
sudo dpkg -i 3proxy_*.deb
</pre>
For RHEL/CentOS/Fedora:
<pre>
sudo rpm -i 3proxy-*.rpm
</pre>
</p>
<p>
Add 3proxy to the system startup scripts or use systemd:
<pre>
sudo systemctl enable 3proxy
sudo systemctl start 3proxy
</pre>
</p>
<li><A NAME="INSTDOCKER">How to use 3proxy with Docker</A>
<p>
<b>Using pre-built images from GitHub Container Registry:</b>
<pre>
docker pull ghcr.io/3proxy/3proxy:latest
</pre>
</p>
<p>
<b>Building Docker images:</b>
<br>Two Dockerfiles are provided:
<ul>
<li><code>Dockerfile.minimal</code> - minimal static build, no plugins, configuration from stdin:
<pre>
docker build -f Dockerfile.minimal -t 3proxy.minimal .
docker run -i -p 3129:3129 --name 3proxy 3proxy.minimal
</pre>
Then enter configuration followed by "end" command.
</li>
<li><code>Dockerfile.full</code> - full build with plugins (SSL, PCRE, Transparent):
<pre>
docker build -f Dockerfile.full -t 3proxy.full .
docker run -p 3129:3129 -v /path/to/config:/usr/local/3proxy/conf 3proxy.full
</pre>
The configuration file must be placed at <code>/path/to/config/3proxy.cfg</code>.
</li>
</ul>
</p>
<p>
By default, 3proxy runs in chroot environment with uid/gid 65535. Use <code>nserver</code> in config for DNS resolution in chroot.
For non-chroot execution, mount config to <code>/etc/3proxy</code>.
</p>
</ul>
<hr>

View File

@ -5,16 +5,14 @@
<li><a href="#COMPILE">Компиляция</a>
<ul>
<li><a href="#MSVC">Как скомпилировать 3proxy Visual C++</a>
<li><a href="#INTL">Как скомпилировать 3proxy Intel C Compiler под Windows</a>
<li><a href="#GCCWIN">Как скомпилировать 3proxy GCC под Windows</a>
<li><a href="#CMAKE">Как скомпилировать 3proxy с помощью CMake</a>
<li><a href="#GCCUNIX">Как скомпилировать 3proxy GCC под Unix/Linux</a>
<li><a href="#CCCUNIX">Как скомпилировать 3proxy Compaq C Compiler под Unix/Linux</a>
</ul>
<li><a href="#INSTALL">Установка и удаление 3proxy</a>
<ul>
<li><a href="#INSTNT">Как установить/удалить 3proxy под Windows 95/98/ME/NT/2000/XP как службу</a>
<li><a href="#INST95">Как установить/удалить 3proxy под Windows 95/98/ME</a>
<li><a href="#INSTNT">Как установить/удалить 3proxy под Windows NT/2000/XP/2003 как службу</a>
<li><a href="#INSTUNIX">Как установить/удалить 3proxy под Unix/Linux</a>
<li><a href="#INSTDOCKER">Как использовать 3proxy с Docker</a>
</ul>
<li><a href="#SERVER">Конфигурация сервера</a>
<ul>
@ -73,63 +71,69 @@
<li><a name="MSVC"><i>Как скомпилировать 3proxy Visual C++</i></a>
<p>
Извлеките файлы из архива 3proxy.tgz (например, с помощью WinZip).
Используйте команду nmake /f Makefile.msvc.
Для 64-битной Windows используйте:
<pre>
nmake /f Makefile.msvc64</pre>
Для Windows ARM64 используйте:
<pre>
nmake /f Makefile.msvcARM64</pre>
Исполняемые файлы будут помещены в каталог <code>bin/</code>.
</p>
<li><a name="INTL"><i>Как скомпилировать 3proxy Intel C Compiler под Windows</i></a>
<li><a name="CMAKE"><i>Как скомпилировать 3proxy с помощью CMake</i></a>
<p>
См. <a href="#MSVC">Как скомпилировать 3proxy Visual C++</a>.
Используйте Makefile.intl вместо Makefile.msvc
</p>
<li><a name="GCCWIN"><i>Как скомпилировать 3proxy GCC под Windows</i></a></li>
<p>
Извлеките файлы из архива 3proxy.tgz (например, с помощью WinZip или, при наличии
Cygwin, tar -xzf 3proxy.tgz).
Используйте команду make -f Makefile.win. Если по каким-то причинам вы хотите использовать
библиотеку POSIX-эмуляции CygWin - используйте make -f Makefile.unix.
При использовании CygWin, функции, специфичные для Windows (такие, как запуск в
качестве службы) будут недоступны.
CMake предоставляет кроссплатформенную систему сборки. Работает на Windows (MSVC, MinGW), Linux, macOS и BSD.
<br>Базовые шаги сборки:
<pre>
mkdir build
cd build
cmake ..
cmake --build .</pre>
На Windows с Visual Studio можно также сгенерировать файл решения:
<pre>
cmake -G "Visual Studio 17 2022" -A x64 ..
cmake --build . --config Release</pre>
Опциональные функции можно включить через параметры cmake:
<pre>
cmake -D3PROXY_USE_OPENSSL=ON -D3PROXY_USE_PCRE2=ON ..</pre>
Доступные опции: 3PROXY_USE_OPENSSL, 3PROXY_USE_PCRE2, 3PROXY_USE_PAM, 3PROXY_USE_ODBC.
<br>Исполняемые файлы будут помещены в каталог <code>build/bin/</code>.
</p>
<li><a name="GCCUNIX"><i>Как скомпилировать 3proxy GCC под Unix/Linux</i></a></li>
<p>
Используйте make -f Makefile.unix. Должен использоваться GNU make, на
некоторых системах необходимо использовать gmake вместо make. Под Linux
необходимо использовать Makefile.Linux, под Solaris - Makefile.Solaris-* (в
зависимости от используемого компилятора). Компиляция проверена в FreeBSD/i386,
OpenBSD/i386, NetBSD/i386, RH Linux/Alpha, Debian/i386, Gentoo/i386, Gentoo/PPC,
Solaris 10, но должно собираться в любых версиях *BSD/Linux/Solaris.
В других системах может потребоваться модификация make-файла и/или исходных текстов.
Для компиляции с поддержкой ODBC необходимо убрать -DNOODBC из флагов
компиляции и добавить -lodbc (или другую ODBC-библиотеку) к флагам линковщика.
</p>
<li><a name="CCCUNIX"><i>Как скомпилировать 3proxy Compaq C Compiler под Unix/Linux</i></a></li>
<p>
Используйте make -f Makefile.ccc. Компиляция проверена в RH Linux 7.1/Alpha.
В других системах может потребоваться модификация файла и/или исходных текстов.
Для Linux используйте:
<pre>
ln -sf Makefile.Linux Makefile
make</pre>
Для FreeBSD используйте:
<pre>
ln -sf Makefile.FreeBSD Makefile
make</pre>
Для других Unix-подобных систем используйте Makefile.unix. На BSD-производных системах
убедитесь, что используете GNU make; иногда он называется gmake вместо make.
<br>Компиляция проверена на FreeBSD, NetBSD, OpenBSD, Linux, Solaris и macOS.
<br>Для поддержки ODBC необходимо установить Unix ODBC, убрать -DNOODBC из флагов
компиляции и добавить ODBC-библиотеку к флагам линковщика.
<br>Исполняемые файлы будут помещены в каталог <code>bin/</code>.
</p>
</ul>
<hr>
<li><a name="INSTALL"><b>Установка и удаление 3proxy</b></a>
<p>
<ul>
<li><a name="INSTNT"><i>Как установить/удалить 3proxy под Windows 95/98/ME/NT/2000/XP/2003 как службу</i></a>
<li><a name="INSTNT"><i>Как установить/удалить 3proxy под Windows NT/2000/XP/2003 как службу</i></a>
<p>
Извлеките файлы из архива 3proxy.zip в любой каталог
(например, c:\Program Files\3proxy). Если необходимо, создайте каталог для
хранения файлов журналов. Создайте файл конфигурации 3proxy.cfg в
каталоге 3proxy (см. раздел <a href="#SERVER">Конфигурация сервера</a>).
Если используется версия более ранняя, чем 0.6, добавьте строку
<pre>
service</pre>
в файл 3proxy.cfg. Откройте командную строку (cmd.exe).
Откройте командную строку (cmd.exe).
Перейдите в каталог с 3proxy и дайте команду 3proxy.exe --install:
<pre>
D:\>C:
C:\>cd C:\Program Files\3proxy
C:\Program Files\3proxy>3proxy.exe --install</pre>
Сервис должен быть установлен и запущен. Если сервис не запускается,
проверьте содержимое файла журнала,
попробуйте удалить строку service из 3proxy.cfg, запустить 3proxy.exe вручную
и проанализировать сообщения об ошибках.
попробуйте запустить 3proxy.exe вручную и проанализировать сообщения об ошибках.
</p><p>
Для удаления 3proxy необходимо остановить сервис и дать
команду 3proxy.exe --remove:
@ -139,43 +143,68 @@
C:\Program Files\3proxy>net stop 3proxy
C:\Program Files\3proxy>3proxy.exe --remove</pre>
после чего каталог 3proxy можно удалить.
<p>
Установка в качестве системной службы под Windows 9x поддерживается с версии 0.5
</p>
<li><a name="INST95"><i>Как установить/удалить 3proxy под Windows 95/98/ME</i></a>
<p>
Извлеките файлы из архива 3proxy.zip в любой каталог
(например, c:\Program Files\3proxy). Если необходимо, создайте каталог для
хранения файлов журналов. Создайте файл конфигурации 3proxy.cfg в
каталоге 3proxy (См. раздел <a href="#SERVER">Конфигурация сервера</a>).
В файле конфигурации удалите строку
<pre>
service</pre>
и добавьте строку
<pre>
daemon</pre>
Создайте ярлык для 3proxy.exe и поместите его в автозагрузку либо с помощью
редактора реестра regedit.exe добавьте в разделе
<br>HKLM\Software\Microsoft\Windows\CurrentVersion\Run</br>
строковый параметр
<br>3proxy = "c:\Program Files\3proxy.exe" "C:\Program Files\3proxy.cfg"<br>
Использование кавычек при наличии в пути пробела обязательно.
Перезагрузитесь.
Если сервер не запускается,
проверьте содержимое файла журнала,
попробуйте удалить строку daemon из 3proxy.cfg, запустить 3proxy.exe вручную
и проанализировать сообщения об ошибках.
</p>
<li><a name="INSTUNIX"><i>Как установить/удалить 3proxy под Unix/Linux</i></a>
<p>
Скомпилируйте 3proxy (см. раздел <a href="#COMPILE">Компиляция</a>). Скопируйте
исполняемые файлы в подходящий каталог (например, /usr/local/3proxy/sbin для
серверных приложений или /usr/local/3proxy/bin для клиентских утилит).
Создайте файл /usr/local/etc/3proxy.cfg.
(См. раздел <a href="#SERVER">Конфигурация сервера</a>).
Изменить расположение файла конфигурации можно, задав параметр при вызове
3proxy или изменив путь в файле 3proxy.c до компиляции.
Добавьте вызов 3proxy в скрипты начальной инициализации.
<b>С помощью Makefile:</b>
<br>Скомпилируйте 3proxy (см. раздел <a href="#COMPILE">Компиляция</a>), затем выполните:
<pre>
sudo make install</pre>
Это установит исполняемые файлы в <code>/usr/local/3proxy/sbin/</code>,
конфигурацию в <code>/etc/3proxy/</code> и настроит chroot-каталоги.
Файл конфигурации по умолчанию: <code>/etc/3proxy/3proxy.cfg</code>.
</p>
<p>
<b>С помощью CMake:</b>
<pre>
mkdir build && cd build
cmake ..
cmake --build .
sudo cmake --install .</pre>
</p>
<p>
<b>С помощью готовых пакетов из GitHub:</b>
<br>Скачайте .deb или .rpm пакеты со страницы <a href="https://github.com/3proxy/3proxy/releases">GitHub Releases</a>.
<br>Для Debian/Ubuntu:
<pre>
sudo dpkg -i 3proxy_*.deb</pre>
Для RHEL/CentOS/Fedora:
<pre>
sudo rpm -i 3proxy-*.rpm</pre>
</p>
<p>
Добавьте 3proxy в скрипты автозапуска или используйте systemd:
<pre>
sudo systemctl enable 3proxy
sudo systemctl start 3proxy</pre>
</p>
<li><a name="INSTDOCKER"><i>Как использовать 3proxy с Docker</i></a>
<p>
<b>Использование готовых образов из GitHub Container Registry:</b>
<pre>
docker pull ghcr.io/3proxy/3proxy:latest</pre>
</p>
<p>
<b>Сборка Docker-образов:</b>
<br>Предоставляются два Dockerfile:
<ul>
<li><code>Dockerfile.minimal</code> - минимальная статическая сборка без плагинов, конфигурация из stdin:
<pre>
docker build -f Dockerfile.minimal -t 3proxy.minimal .
docker run -i -p 3129:3129 --name 3proxy 3proxy.minimal</pre>
Затем введите конфигурацию, завершив командой "end".
</li>
<li><code>Dockerfile.full</code> - полная сборка с плагинами (SSL, PCRE, Transparent):
<pre>
docker build -f Dockerfile.full -t 3proxy.full .
docker run -p 3129:3129 -v /path/to/config:/usr/local/3proxy/conf 3proxy.full</pre>
Файл конфигурации должен находиться по пути <code>/path/to/config/3proxy.cfg</code>.
</li>
</ul>
</p>
<p>
По умолчанию 3proxy работает в chroot-окружении с uid/gid 65535. Используйте <code>nserver</code> в конфигурации для DNS-разрешения в chroot.
Для запуска без chroot монтируйте конфигурацию в <code>/etc/3proxy</code>.
</p>
</ul>
<hr>