/webone

HTTP 1.x proxy that makes old web browsers usable again in the Web 2.0 world.

Primary LanguageC#OtherNOASSERTION

WebOne

This is a HTTP 1.x proxy server that makes old web browsers, media players and messengers usable again in the Web 2.0 world.

The proxy is an adapter between the modern Web and old software. It is designed to run on an modern PC in same network with older computers.

WebOne HTTP Proxy Server is working by default on port 8080 and is compatible even with Netscape Navigator 3. Set IP address or hostname of PC with WebOne as HTTP/HTTPS/FTP proxy server (or set http://proxyhost:port/auto.pac as Automatic proxy configuration URL) in old browser's settings and begin WWW surfing again. There also is alternative mode (http://proxyhost:port/http://domain/filename.ext) for browsers that cannot work with proxies.

The program's settings are in the webone.conf file (but any other file name can be used too).

See WebOne wiki for complete list of features and full documentation.

Server prerequisites

Windows 7 (2008 R2) SP1+ / Linux / macOS and .NET 6.0 Runtime are required on server PC. See .NET 6.0 System Requirements.

Image and video converting

  • Picture format converting is performing via convert utility from ImageMagick (bundled with WebOne).
  • To watch YouTube.com videos through proxy, install ffmpeg together with yt-dlp (included in win-x64.full zips, and can be installed manually on Linux/macOS).

Install

Manuals about how to set up a WebOne proxy on Windows / Linux / macOS servers are in the Wiki.

Run

  • On Windows simply run webone.exe. Then open port 8080 in Windows Firewall settings.

  • On Linux the proxy is installing as a service, so it can be configured via regular service management commands:

    $ sudo service webone start
    or
    $ sudo systemctl start webone
    

    Other service commands, such as start/stop/restart/status/enable/disable, also work.

  • On macOS launch webone from Terminal, as the application is not signed for developer verification.

    $ ./webone				(simply)
    $ ./webone 5170				(start on specific port, e.g. 5170)
    $ sudo ./webone 80			(if port is less than 1024, root rights are need)
    $ ./webone /some/folder/myconfig.conf	(to use specific configuration file instead of default)
    $ dotnet webone.dll			(alternative way)
    

    These commands also can be used on Linux when systemd service is disabled.

  • Tip: you may store your own configuration in /etc/webone.conf.d/ directory. It will override webone.conf settings and will not be overwritten on package updates.

Working of WebOne can be checked via web browser by opening http://proxyhost:port/.

Note that this app is not intended for daily use, as removing any encryption from web traffic and use of really old and unsupported browser may cause security problems.

The server can be started even on public hosts. But don't forget to enable password protection in config file to make the proxy non-public.

Build

Latest source code can be always found in the master () and the dev branches of the Git repository.

The program is built using Microsoft .NET 6.0 SDK and dotnet-packaging add-on. With them the building is easy on all platforms: use dotnet publish & dotnet deb || dotnet rpm || dotnet zip tools.

Windows developers can utilize build.bat script for cross-platform building. And there is similar build.sh script for Linux and macOS environments.

Feedback

Any questions can be written on official VOGONS thread, phantom.sannata.ru thread, and GitHub Issues and Discussions tabs.

Who are the author(s)?

Currently the project is maintained mostly by a single person, Alexander Tauenis (ATauenis). Also thanks to contributors who made pull requests and bug reports.

How to help the project

WebOne project welcomes any help in the development. Forks, Pull Requests, and Bug Reports are welcome.

Even if you don't know C#, but have skills on HTML/CSS/JS development, it's possible to help with creating web traffic edits.

Описание по-русски

WebOne - прокси-сервер HTTP (HTTPS), позволяющий открывать современные сайты на старых браузерах. Своеобразный переходник между реальным Web 2.0 и историческим Web 1.0. Работает по принципу MITM.

Он имеет следующие функции:

  • Снятие шифрования HTTPS и двухстороннее преобразование HTTPS 1.1 <-> HTTP 1.0.
  • Перекодировка шифров HTTPS в более старые (при необходимости).
  • Замена кодировки в ответах серверов на любую, включая транслит.
  • Подмена отдельных файлов (например, новых тяжёлых JS-фреймворков на более старые и лёгкие).
  • Корректирование частей текстового трафика (например, патчинг JS или XML/CDF/RSS).
  • Конвертация или пережатие графических и видеофайлов "на лету" (используя внешние конвертеры).
  • Переадресация с несуществующих адресов на Web Archive.
  • Скачивание и конвертация видео с YouTube для воспроизведения на старых ПК в браузере.
  • Клиент FTP для обращения к таким серверам через браузер.

Этот прокси-сервер необходимо запускать на любом современном ПК с Microsoft .NET 6.0 Runtime, IP адрес которого указывается в настройках устаревшего веб-обозревателя. Порт по умолчанию 8080, тип прокси HTTP 1.0. Доступен файл автоматической настройки: http://proxyhost:port/auto.pac .

Настройки прокси-сервера хранятся в файле webone.conf или любом другом в одном из следующих мест:

  • Каталог программы.
  • /etc/webone.conf (/etc/webone.conf.d/*.conf)
  • ~/.config/webone/webone.conf
  • ~/Library/Application Support/WebOne/webone.conf
  • /Library/Application Support/WebOne/webone.conf
  • C:\Users\username\AppData\Roaming\WebOne\webone.conf
  • C:\ProgramData\WebOne\webone.conf (C:\ProgramData\WebOne\*.conf)
  • Указанный в аргументе при запуске через webone PATH\FILENAME.EXT.

Файл протокола (webone.log) по умолчанию сохраняется по адресу /var/log/webone.log, или C:\Users\username\AppData\Roaming\webone.log, или ~/Library/Logs/webone.log.

На Linux используются конвертеры из пакетов imagemagick (convert) и ffmpeg. В Windows-версии прилагается конвертер convert, а в Full-версии дополнительно имеются ffmpeg и yt-dlp.

Проект открыт для всех желающих присоединиться к разработке. Автор и основатель проекта: Александр Тауенис (ATauenis).

Подробная документация (на английском) в wiki проекта.

Обсуждение на phantom.sannata.ru.