Git Product home page Git Product logo

opera-proxy's Introduction

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 (default https://1.1.1.3/dns-query)
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:[email protected]: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

opera-proxy's People

Contributors

snawoot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

opera-proxy's Issues

PROXY : 2022/04/27 17:58:26 handler.go:39: ERROR Can't satisfy CONNECT request: socks connect tcp ... : i/o timeout

I'm using opera-proxy thru TOR on snap like so:

snap run opera-proxy -proxy socks5://127.0.0.1:9050 -country EU -bind-address 127.0.0.1:33333 -verbosity 30 -timeout 360s

I get theses errors:

PROXY : 2022/04/27 17:58:26 handler.go:39: ERROR Can't satisfy CONNECT request: socks connect tcp 127.0.0.1:9050->77.111.247.182:443: read tcp 127.0.0.1:58226->127.0.0.1:9050: i/o timeout

PROXY : 2022/04/27 18:00:48 handler.go:78: ERROR HTTP fetch error: EOF

I thought that the '-timeout 360s' would solve the errors. It seems that TOR is too slow for opera-proxy.

-api-address not working

You cannot assume ip adress by -api-address option, because -bootstrap-dns is assumed by default,so they produce "api-address and bootstrap-dns options are mutually exclusive" error.

WebRTC Leaks ?

Hey, this is great for scripts and such but when using this with browsers (both chromium and firefox) its leaking your real IP addresses.

The odd thing is I'm blocking WebRTC leaks on both browsers using uBlock Origin's prevent WebRTC leak and have disabled all other extensions and checked but its still leaking whenever the proxy is enabled which has led me to conclude that opera-proxy is at fault. (might be wrong tho)

I'm using it as an http proxy if that matters, not socks5.
Latest version, compiled from search.

Support Browsec proxies

There is a browser extension Browsec which looks like a clone of Opera's.
It would be nice to support their servers too.

How to refresh IP Address ?

First of all, great app.
Logging to the proxy via CURL is not working.
How can we refresh the IP address when we run the HTTP server? like refresh each 5 sec
I tested
./opera-proxy -refresh 0h0m5s

but it does not work!

Regards

CRITICAL ERROR

Hi, thx for repo!

Now opera-proxy print: CRITICAL Unable to perform anonymous registration: bad http status: 401 Unauthorized..

Everything fixed itself.

Add instructions for socket-activated service on wiki page

FE binary and conf. files are placed at /opt/opera-proxy/

opera-proxy.service:
[Unit]
Description=Opera VPN
Documentation=https://github.com/Snawoot/opera-proxy/
After=network.target network-online.target
Requires=network-online.target
BindsTo=proxy2opera-proxy.service

[Service]
EnvironmentFile=/opt/opera-proxy/opera-proxy.conf
ExecStart=/opt/opera-proxy/opera-proxy $OPTIONS
TimeoutStopSec=5s
LimitNOFILE=1048576
LimitNPROC=512
PrivateTmp=true
ProtectSystem=full

[Install]
WantedBy=default.target

proxy2opera-proxy.service:
[Unit]
Requires=opera-proxy.service
After=opera-proxy.service
Requires=proxy2opera-proxy.socket
After=proxy2opera-proxy.socket
BindsTo=opera-proxy.service

[Service]
Type=notify
ExecStart=/usr/lib/systemd/systemd-socket-proxyd 127.0.0.1:18081 --exit-idle-time=600

proxy2opera-proxy.socket:
[Socket]
ListenStream=18080

[Install]
WantedBy=sockets.target

opera-proxy.conf:
OPTIONS=-bind-address 127.0.0.1:18081

service will start automatically with packets received on 18080 port and stop after being 10min idle(when systemd-socket-proxyd will be killed)

No connections

Hello, Opera-proxy doesn't work any more, for exemple with :

https://www.canalplus.com/c8/tpmp/touche-pas-a-mon-poste

I even try in combination with this extension to add a french ip address to the x forwarded for, but no connection, the Opera-proxy connection window displays no connection :

https://github.com/MisterPhilip/x-forwarded-for

before, I was able to watch videos from this French tv using Opera-proxy and x forwarded for ! but now impossible to watch videos from this tv channel !

go 1.21 support

opera-proxy doesn't compile with go 1.21.

# go build
# github.com/quic-go/quic-go/internal/qtls
/home/przemyslawo/go/pkg/mod/github.com/quic-go/[email protected]/internal/qtls/go121.go:5:13: cannot use "The version of quic-go you're using can't be built on Go 1.21 yet. For more details, please see https://github.com/quic-go/quic-go/wiki/quic-go-and-Go-versions." (untyped string constant "The version of quic-go you're using can't be built on Go 1.21 yet. F...) as int value in variable declaration

Windows versions

Hello, thank you for this awesome vpn ! 💯 🥇

Please i have question, i see in releases page many windows versions , which version we should choose please ? i use windows 10 asus i3 :

"opera-proxy.windows-386.exe or opera-proxy.windows-amd64.exe or opera-proxy.windows-arm.exe ?

Android

I'm not able to understand how to use on android as it says. Care to explain?

Change countries

Hello, I made several attempts before I could get Opera-Proxy to work, but I succeeded and I checked the IP address and I see that the location is in Europe, I read the description and the explanation on the Opera proxy github page and I tried but I did not succeed in changing the location of Opera-proxy to Asia or America, how to do it please ?

Connect to proxy curl C++ help...

Привет, я использовал opera-proxy.windows-amd64.exe, всё работает.
Написал программу для получения логина и пароля по твоему примеру на GO.
Но я не могу подключится к прокси, посмотри код пожалуйста, уже неделю голову ломаю, не могу подключится и всё.

void test_proxy()
{
CURL* curl;
CURLcode res;
struct curl_slist* host = NULL;
char resolve[100];

curl = curl_easy_init();
if (curl)
{	
	sprintf(resolve, "eu0.sec-tunnel.com:%s:%s", find_opera_ips[0].port, find_opera_ips[0].ip);
	host = curl_slist_append(host, resolve);
	curl_easy_setopt(curl, CURLOPT_RESOLVE, host);
	curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
	curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
	curl_easy_setopt(curl, CURLOPT_USERAGENT, userAgent);
	curl_easy_setopt(curl, CURLOPT_HEADER, 1L);
	curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
	curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
	curl_easy_setopt(curl, CURLOPT_PROXY, "eu0.sec-tunnel.com:443");
	curl_easy_setopt(curl, CURLOPT_PROXYUSERNAME, login);
	curl_easy_setopt(curl, CURLOPT_PROXYPASSWORD, device_password);
	curl_easy_setopt(curl, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);

	res = curl_easy_perform(curl);
}
        curl_easy_cleanup(curl);

	if (res == CURLE_OK)
	{
		printf("Error code: %d\n", res);
		return;
	}

}

Вывод с консоли :

  • Added eu0.sec-tunnel.com:443:77.111.247.55 to DNS cache
  • timeout on name lookup is not supported
  • Hostname eu0.sec-tunnel.com was found in DNS cache
  • Trying 77.111.247.55:443...
  • Connected to eu0.sec-tunnel.com (77.111.247.55) port 443 (#0)
  • allocate connect buffer!
  • Establish HTTP proxy tunnel to example.com:443
  • Proxy auth using Basic with user 'C5AE7A2438BE4559F244A937F1C319D23E16F960'

CONNECT example.com:443 HTTP/1.1
Host: example.com:443
Proxy-Authorization: Basic QzVBRTdBMjQzOEJFNDU1OUYyNDRBOTM3RjFDMzE5RDIzRTE2Rjk2MDpleUpoYkdjaU9pSkZRMFJJTFVWVEswRXlOVFpMVnlJc0ltTjBlU0k2SWtwWFZDSXNJbVZ1WXlJNklrRXlOVFpIUTAwaUxDSmxjR3NpT25zaWEzUjVJam9pUlVNaUxDSmpjbllpT2lKUUxUSTFOaUlzSW5naU9pSkdXVVJVTkZsRFpWUnZRVU5YTW1weFdGUm1abk4yYVZkdE1ETmxkekZDTlROMWVEQkRZMWRJWldaRklpd2llU0k2SW1sV1NUZFlkVkZ0TjNJNVUzcFFXVkYyYlVjMFYxcEdSMVp1VjFFeU5sUk5PRE5uWlZoS01uQXdRbGtpZlgwLkU5dC1EbzBDdUQ0V3dOd3VDSkFrRjUxRXk4NnNNZTN2UFNZVEEtWWZUNnNpTC1lTE9OdlJWZy45TWJIM2hEeTZxU2xkZ3M5LnJrRXUzcWNBZjI2ekp1TmdjTEJkaVZZaHp5ZHJjWlIzV2tvTy1LQ2gtWkxtZF9EWHdhMjMwMWYxVUJjY2Y2NjdLLWJ1TmEwWGdOYTVCdTI4alU5YU1jVDlmQVRGNHNXMkJRMm04bmhrNWR5cVBmbU9tUEQ1UUo4ckN5clhlcmhGRi1PdkFjUi1UQ181QUNoRE8zb1lvMlBBMmNkZmR0alFKTXJ2b2lGa2I3eVcwQ2ZHdmVuRl9lMVJkdU05Wm00aFcxOVJVM0swbVNmZnhYSVhsUHA1UGFpWWxoSzBMdER0emxWMFp5ZVNNdi00OFpEM3p3N01RUGJ5QTZMeWc0cnNHR00yQm5IQjFSUE53ejBoN00yU2VVcUxpa2xhVHI0XzBtN3pjcHlheHVYVFNIcUh0QUFtUWRsbmlJal84RTJKQ09HUVY2QlN4VG1aaklEbnZUQ0NtSlNjREFBNHJYdTJDaVFpb29pX18teWZZZVVYZXNOMGVRSnBEWm15dC1zZEFQOFBXZElXb2lMdE5EN3JiZ29mVE5jaDkzRm5FOUt2SmpubW9hc2JzT1hGa3hWaU9NS0pwd0JSN3NvcmVKWmxib1IyREZ3Lk1pUXk3aWhZVWtENmJYNmZUclctd2c=
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.192 Safari/537.36 OPR/74.0.3911.232
Proxy-Connection: Keep-Alive

  • Recv failure: Connection was reset
  • Received HTTP code 0 from proxy after CONNECT
  • CONNECT phase completed!
  • Closing connection 0

Are there any more countries?

I've never used Opera because I don't trust it.

I wonder if the official browser supporst more countries or if they really just offer three VPN regions?

Feature request: A way to keep the app opened if a fail occurs and an interval between each restart.

When I start opera-proxy with my connection off, this message is showed:

# opera-proxy 
MAIN    : 2023/08/14 20:48:37 main.go:129: INFO     opera-proxy client version undefined is starting...
MAIN    : 2023/08/14 20:48:37 main.go:207: CRITICAL Unable to perform anonymous registration: Post "https://api.sec-tunnel.com/v4/register_subscriber": dial tcp: lookup api.sec-tunnel.com on [::1]:53: read udp [::1]:52276->[::1]:53: read: connection refused

It's ok, but when I user opera-proxy as a systemd service, it doesn't start automatically due to this failure, it starts too quickly, even if I use these options in the service file:

After=network-online.target
Wants=network-online.target

There is a workaround for this problem, it is to restart the app when a failure occurs:

Restart=on-failure
RestartSec=10

But I think it's a good idea to the app has its own mechanisms to deal with different network states.

Maybe an option for keep the app open and trying to connect periodically based on a second timeout for establishing a interval between each try

OpenSSL

Hi!

Curl example all works fine only except all asian proxy addresses and credentials.

curl: (35) OpenSSL SSL_connect: Connection reset by peer in connection to as1.sec-tunnel.com:443

Tested on different servers, the problem persists.

If I run opera-proxy -country AS on the same server everything works fine

Google did not give useful answers, please give an answer to what could be the problem?

I think there is a problem with country selection

When using this command
opera-proxy -country AM
to use the USA country, I got this IP address on ip2location.com
2001:67c:2628:647:12::162 which is in Sweden [SE].

But when I use Opera browser and set the VPN to America
I got this IP address on ip2location.com
2001:67c:2628:647:12::3e
which is in USA

How to properly use the exported proxies? in Python

Critical : Client stopped working with "No Available Proxies for Region" message

The client stopped working with this message:

C:\>opera-proxy.windows-amd64.exe -verbosity 10
MAIN    : 2024/04/01 12:06:33 main.go:129: INFO     opera-proxy client version v1.2.5 is starting...
MAIN    : 2024/04/01 12:06:34 main.go:228: CRITICAL Endpoint discovery failed: API responded with error message: code=801, msg="No Available Proxies for Region"

I think opera changed something like login keys.

Snawoot нужна помощь!

Привет!!! Как вы используете свой локальный прокси?
Помогите пожалуйста, хоть чем-нить.
Например:
Я делаю прокси сервер, принимаю соединение от клиента "CONNECT example.com:443 HTTP/1.1\r\nHost: example.com:443\r\nProxy-Connection: Keep-Alive\r\n\r\n", редактирую добавляю Proxy-Authorization: Basic,
дальше соединяюсь к https прокси через openssl, посылаю клиенту "HTTP/1.1 200 OK\r\n\r\n", и дальше обрабатываю сокеты
как обычное tcp?

  1. Вот так:

             if (FD_ISSET(socket_client, &readfds))
             {
                 int recvd = recv(socket_client, buf, sizeof(buf), 0);
                 if (recvd <= 0)           
                 send(proxy_socket, buf, recvd, 0);                
             }
    
             if (FD_ISSET(proxy_socket, &readfds))
             {
               int recvd = recv(proxy_socket, buf, sizeof(buf), 0);
                 if (recvd <= 0)
                     break;
                  send(socket_client, buf, recvd, 0);     
             }
    

Или принимаю соединение SSL_accept, расшифровываю данные от клиента, и создаю новое ssl соединение, и отправляю данные к прокси и потом к клиенту?
2. Вот так:

            if (FD_ISSET(socket_client, &readfds))
            {
               int recvd = SSL_read(ssl_client, buf, sizeof(buf));
                if (recvd <= 0)
                    break;                   
               SSL_write(ssl_conn, buf, recvd);               
            }

            if (FD_ISSET(proxy_socket, &readfds))
            {
               int recvd = SSL_read(ssl_conn, buf, sizeof(buf));
                if (recvd <= 0)
                    break;
                SSL_write(ssl_client, buf, recvd);             
            }

В первом случае не получается, во втором получается, но у клиента сертификат в инфо, показывает моего сервера.
А Когда я использую ваш прокси то показывает сертификат куда я подключаюсь например example.com,
Второй вариант это mitm получается?
Или как я должен делать? может в ответ клиенту я должен отправить сертификат который мне прислал прокси?
Или как?
Не подскажите как вы это сделали? Хотя бы на словах объясните пожалуйста.
Я просто в Go плохо разбираюсь.
Буду рад любой помощи.

How to properly use the exported proxies?

Hi!

I wanted to use the opera proxies for a python project.

So, I downloaded the exe for windows, and did opera-proxy.windows-amd64.exe -country EU -list-proxies.
Everything worked as expected, I got the proxy list and the credentials.

But when trying to use the proxies in python, I would get:
Max retries exceeded with url: / (Caused by ProxyError('Cannot connect to proxy.', RemoteDisconnected('Remote end closed connection without response'))).

When trying to use the hostname instead of the proxy ip, I get this:
Max retries exceeded with url: / (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x11105990>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))) - probably can't resolve the ip for the hostname.

I also thought that maybe those are secure web proxies, but it still failed:
Max retries exceeded with url: / (Caused by SSLError(SSLCertVerificationError(1, "[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: IP address mismatch, certificate is not valid for '77.111.244.65'. (_ssl.c:1056)")))

Is there something specific about connecting to the opera proxies?

Multiplex between all proxies to increase throughput

To increase throughput, it would be nice if connections could be passed through all 3 proxies in turn. Although the user could run separate instances, one for each proxy available on a different port, that might only help if you have separate high-bandwidth apps and assign each to a different proxy. But if you have only a single high-bandwidth app, there's no way to use more than one proxy with a single app. At the app level or the OS level, I've only ever seen the option to use a single proxy. Maybe we need a separate proxy multiplexer program for this. This seems tangentially related: https://github.com/alexkirsz/dispatch

Bad response from upstream proxy server ( dropmefiles.com )

Cannot connect to https://dropmefiles.com/
The related log is

PROXY   : 2022/03/06 11:14:27 handler.go:92: INFO     Request: 127.0.0.1:59540 HTTP/1.1 CONNECT //dropmefiles.com:443
PROXY   : 2022/03/06 11:14:37 handler.go:39: ERROR    Can't satisfy CONNECT request: bad response from upstream proxy server: 500 Internal Server Error

Unable to resolve api.sec-tunnel.com with specified bootstrap DNS

Latest versions v1.3.0 & v1.3.1 show connection error:

D:\opera-proxy.windows-amd64.exe
MAIN : 2024/07/06 20:41:25 main.go:129: INFO opera-proxy client version v1.3.0 is starting...
MAIN : 2024/07/06 20:41:25 main.go:165: INFO Discovering API IP address...
MAIN : 2024/07/06 20:41:26 main.go:168: CRITICAL Unable to resolve api.sec-tunnel.com with specified bootstrap DNS

nslookup api.sec-tunnel.com 8.8.8.8
Server: dns.google
Address: 8.8.8.8

Non-authoritative answer:
Server : api.sec-tunnel.com
Addresses: 77.111.247.15
77.111.247.17

v1.2.5 works:

D:\opera-proxy.windows-amd64.exe
MAIN : 2024/07/06 20:45:50 main.go:129: INFO opera-proxy client version v1.2.5 is starting...
MAIN : 2024/07/06 20:45:51 main.go:284: INFO Endpoint: 77.xxx.xx.xx:443
MAIN : 2024/07/06 20:45:51 main.go:285: INFO Starting proxy server...
MAIN : 2024/07/06 20:45:51 main.go:287: INFO Init complete.

Is it possible to change IP

Hello, great project!!!
I noticed that every time I start, I get a different IP for the duration of the entire project launch.
Is it possible to change IP, for example by time or external command call? We need rotation.

Change geographic location in opera proxy for android

Hello, thank you again for this VPN :)

I have a question please, why opera does not protect its VPN i.e. why opera does not put a protection mechanism to prevent the use of its proxy outside of opera browser? or maybe there is ads when using this proxy so opera can finance its vpn ?

I have another question please: when using the Opera browser, the Opera browser automatically chooses the best VPN location for faster browsing, can Standalone Opera VPN client do this by choosing the default location? fastest geographic location automatically?

and also how we can choose the geographical location when we use opera-proxy for android because we cannot add command line arguments to the shortcut like in windows 10 os? Thanks !

Another question please : we know that opera was bought by a Chinese consortium in 2016, I do not accuse this company which is certainly honest but we know that the Chinese communist party likes to control and monitor people and likes to spy on people and imposes on Chinese companies to follow their orders, so is there a security risk when using opera proxy when for example the Chinese communist party orders opera to give out user passwords?

Another quetion please : hola -proxy has option " peer proxies on residental IPs (consumer ISP) ",

I read that the tuxler vpn

https://www.tuxlervpn.com/

allows us to use the real IP addresses of users and if a malicious user takes our IP address and does illegal activity, we can be punished and go to prison....is it the same thing with hola proxy when we use hola -proxy has option " peer proxies on residential IPs" ? hola proxy allows people to use our real ip address ?

How to use it with windows firewall block enabled?

Hi!
I use windows 10 firewall with all default rules removed and with only my apps allowed.
If I run opera-proxy there no internet for it and I don't see any tries of it's exe that dropped by firewall.
How to give internet access to it?
Thank you.

OpenVPN and opera-proxy

Здравствуйте! Скажите пожалуйста, существует ли возможность трафик (http и https) всех клиентов OpenVPN завернуть через opera-proxy?

Docker build error

Got an error while building container

Log below

`
Building opera-proxy
Step 1/17 : FROM golang AS build
---> 1b8b0ceece59
Step 2/17 : ARG GIT_DESC=undefined
---> Using cache
---> 2405fc5bf4ec
Step 3/17 : WORKDIR /go/src/github.com/Snawoot/opera-proxy
---> Running in 8dda67de6a20
Removing intermediate container 8dda67de6a20
---> f521b30c36bf
Step 4/17 : COPY . .
---> 2bfd4c278f65
Step 5/17 : RUN CGO_ENABLED=0 go build -a -tags netgo -ldflags '-s -w -extldflags "-static" -X main.version='"$GIT_DESC"
---> Running in 7667f03d75a8
go: downloading github.com/AdguardTeam/dnsproxy v0.36.0
go: downloading github.com/miekg/dns v1.1.35
go: downloading github.com/Snawoot/go-http-digest-auth-client v1.1.3
go: downloading golang.org/x/net v0.0.0-20210324205630-d1beb07c2056
go: downloading github.com/joomcode/errorx v1.0.3
go: downloading github.com/lucas-clemente/quic-go v0.19.3
go: downloading github.com/AdguardTeam/golibs v0.4.4
go: downloading github.com/ameshkov/dnscrypt/v2 v2.0.1
go: downloading github.com/ameshkov/dnsstamps v1.0.3
go: downloading golang.org/x/crypto v0.0.0-20201208171446-5f87f3452ae9
go: downloading golang.org/x/sys v0.0.0-20210324051608-47abb6519492
go: downloading github.com/cheekybits/genny v1.0.0
go: downloading golang.org/x/text v0.3.4
go: downloading github.com/marten-seemann/qtls-go1-15 v0.1.1
go: downloading github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da
go: downloading github.com/aead/poly1305 v0.0.0-20180717145839-3fee0db0b635
'# github.com/Snawoot/go-http-digest-auth-client
/go/pkg/mod/github.com/!snawoot/[email protected]/authorization.go:109:15: undefined: io.NopCloser
/go/pkg/mod/github.com/!snawoot/[email protected]/digest_auth_client.go:49:18: undefined: io.NopCloser
/go/pkg/mod/github.com/!snawoot/[email protected]/digest_auth_client.go:59:21: undefined: io.NopCloser
note: module requires Go 1.16
ERROR: Service 'opera-proxy' failed to build: The command '/bin/sh -c CGO_ENABLED=0 go build -a -tags netgo -ldflags '-s -w -extldflags "-static" -X main.version='"$GIT_DESC"' returned a non-zero code: 2

`

"Opera Mini"'s proxies ?

Opera Mini has a very wide range of proxies and those are still unused by us, do you want to expand our list ?

APK: https://play.google.com/store/apps/details?id=com.opera.mini.native
Test IP: https://httpbin.org/ip
Test Headers: https://httpbin.org/headers

global-turbo2.opera-mini.net
global-turbo2-1.opera-mini.net
mini5.opera-mini.net
mini5-1.opera-mini.net

{ "headers": { "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.9,image/webp", "Accept-Encoding": "gzip, deflate", "Accept-Language": "en-US,en;q=0.9", "Host": "httpbin.org", "Save-Data": "on", "Upgrade-Insecure-Requests": "1", "User-Agent": "Mozilla/5.0 (Linux; U; Android 5.1; A1601 Build/LMY47I; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/95.0.4638.74 Mobile Safari/537.36 OPR/66.1.2254.64111", "X-Amzn-Trace-Id": "Root=1-6386bfe8-197ce0d93c7bf32c59f3d7d0" } }

Feature request: Ability to select the outgoing IP address

Just like Tor does, I think it's a good idea:

From $man tor:

       OutboundBindAddress IP
           Make all outbound connections originate from the IP address specified. This is only useful when you have multiple network interfaces,
           and you want all of Tor’s outgoing connections to use a single one. This option may be used twice, once with an IPv4 address and once
           with an IPv6 address. IPv6 addresses should be wrapped in square brackets. This setting will be ignored for connections to the loopback
           addresses (127.0.0.0/8 and ::1), and is not used for DNS requests as well.

The option could be specified twice, one for IPv4 and other for IPv6.

How protect server ip form getting banned by opera

Dear support.
I want to connect to opera proxy via TOR proxy, I have rotated tor proxy.
How can I connect to opera-proxy and pass my TOR proxy to it?
export http_proxy=[tor_proxy] ./opera-proxy does not work.

Reards

Помощь с запуском в фоне

Я не разобрался как запустить в фоне, что-бы окно терминала не мешало. На посте в Хабр упоминается запуск с помощью "планировщика задач" но даже с ним окно все равно видно. Как делать все эти аргументы я тоже не понял, хоть и очень интересно. Кроме этих деталей, работает идеально.

Использую opera-proxy.windows-amd64.exe, запускаю через планировщик задач при входе в систему.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.