Skip to content

Snawoot/opera-proxy

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
October 9, 2023 01:15
fmt
April 2, 2021 13:24
March 26, 2021 22:22
September 30, 2023 16:04
March 22, 2021 23:28
October 2, 2023 18:04
March 26, 2021 22:34
fmt
March 30, 2021 15:50
August 26, 2023 13:43
August 26, 2023 13:43
WIP
March 27, 2021 00:43
March 26, 2021 22:34
June 25, 2022 15:05
August 26, 2023 13:45
April 23, 2021 13:01

opera-proxy

opera-proxy

Standalone Opera VPN client. Younger brother of hola-proxy.

Just run it and it'll start a plain HTTP proxy server forwarding traffic through "Opera VPN" proxies of your choice. By default the application listens on 127.0.0.1:18080.

Features

  • Cross-platform (Windows/Mac OS/Linux/Android (via shell)/*BSD)
  • Uses TLS for secure communication with upstream proxies
  • Zero configuration
  • Simple and straightforward

Installation

Binaries

Pre-built binaries are available here.

Build from source

Alternatively, you may install opera-proxy from source. Run the following within the source directory:

make install

Docker

A docker image is available as well. Here is an example of running opera-proxy as a background service:

docker run -d \
    --security-opt no-new-privileges \
    -p 127.0.0.1:18080:18080 \
    --restart unless-stopped \
    --name opera-proxy \
    yarmak/opera-proxy

Snap Store

Get it from the Snap Store

sudo snap install opera-proxy

Usage

List available countries:

$ ./opera-proxy -list-countries
country code,country name
EU,Europe
AS,Asia
AM,Americas

Run proxy via country of your choice:

$ ./opera-proxy -country EU

Also it is possible to export proxy addresses and credentials:

$ ./opera-proxy -country EU -list-proxies
Proxy login: ABCF206831D0BDC0C8C3AE5283F99EF6726444B3
Proxy password: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjb3VudHJ5IjoidWEiLCJpYXQiOjE2MTY4MDkxMTIsImlkIjoic2UwMzE2LTYweGY3aTBxMGhoOWQ1MWF0emd0IiwiaXAiOiI3Ny4xMTEuMjQ3LjE3IiwidnBuX2xvZ2luIjoiSzJYdmJ5R0tUb3JLbkpOaDNtUGlGSTJvSytyVTA5bXMraGt2c2UwRWJBcz1Ac2UwMzE2LmJlc3QudnBuIn0.ZhqqzVyKmc3hZG6VVwWfn4nvVIPuZvaEfOLXfTppyvo
Proxy-Authorization: Basic QUJDRjIwNjgzMUQwQkRDMEM4QzNBRTUyODNGOTlFRjY3MjY0NDRCMzpleUpoYkdjaU9pSklVekkxTmlJc0luUjVjQ0k2SWtwWFZDSjkuZXlKamIzVnVkSEo1SWpvaWRXRWlMQ0pwWVhRaU9qRTJNVFk0TURreE1USXNJbWxrSWpvaWMyVXdNekUyTFRZd2VHWTNhVEJ4TUdob09XUTFNV0YwZW1kMElpd2lhWEFpT2lJM055NHhNVEV1TWpRM0xqRTNJaXdpZG5CdVgyeHZaMmx1SWpvaVN6SllkbUo1UjB0VWIzSkxia3BPYUROdFVHbEdTVEp2U3l0eVZUQTViWE1yYUd0MmMyVXdSV0pCY3oxQWMyVXdNekUyTG1KbGMzUXVkbkJ1SW4wLlpocXF6VnlLbWMzaFpHNlZWd1dmbjRudlZJUHVadmFFZk9MWGZUcHB5dm8=

host,ip_address,port
eu0.sec-tunnel.com,77.111.244.26,443
eu1.sec-tunnel.com,77.111.244.67,443
eu2.sec-tunnel.com,77.111.247.51,443
eu3.sec-tunnel.com,77.111.244.22,443

List of arguments

Argument Type Description
api-address String override IP address of api.sec-tunnel.com
api-login String SurfEasy API login (default "se0316")
api-password String SurfEasy API password (default "SILrMEPBmJuhomxWkfm3JalqHX2Eheg1YhlEZiMh8II")
bind-address String HTTP proxy listen address (default "127.0.0.1:18080")
bootstrap-dns String DNS/DoH/DoT/DoQ resolver for initial discovering of SurfEasy API address. See https://github.com/ameshkov/dnslookup/ for upstream DNS URL format. Examples: https://1.1.1.1/dns-query, quic://dns.adguard.com
cafile String use custom CA certificate bundle file
certchain-workaround Boolean add bundled cross-signed intermediate cert to certchain to make it check out on old systems (default true)
country String desired proxy location (default "EU")
list-countries - list available countries and exit
list-proxies - output proxy list and exit
proxy String sets base proxy to use for all dial-outs. Format: <http|https|socks5|socks5h>://[login:password@]host[:port] Examples: http://user:password@192.168.1.1:3128, socks5://10.0.0.1:1080
refresh Duration login refresh interval (default 4h0m0s)
refresh-retry Duration login refresh retry interval (default 5s)
timeout Duration timeout for network operations (default 10s)
verbosity Number logging verbosity (10 - debug, 20 - info, 30 - warning, 40 - error, 50 - critical) (default 20)
version - show program version and exit

See also