Quentin McGaw
082a5bdf51
Fix http control server not working when DOT=off
2020-06-16 00:11:22 +00:00
Quentin McGaw
7369808b84
Refactor ( #174 )
...
- Goal was to simplify main.go complexity
- Use common structures and interfaces for all vpn providers
- Moved files around
- Removed some alias models
2020-06-13 14:08:29 -04:00
Quentin McGaw
4f502abcf8
Cyberghost support ( #168 )
...
* Host finder CLI for cyberghost
* Resolver program updated with Cyberghost data
* Gluetun cli clientkey subcommand
2020-06-13 10:43:47 -04:00
Quentin McGaw
bdcadf09ec
Fix: Shadowsocks nameserver when DOT=off
2020-06-13 13:57:26 +00:00
Quentin McGaw
8cae369186
Add FIREWALL variable, refers to #171
2020-06-12 17:11:21 +00:00
Quentin McGaw
6107f5c4ab
Fix #173
2020-06-10 01:16:58 +00:00
Quentin McGaw
e33a6a8503
Fix #170
2020-06-05 19:32:12 -04:00
Quentin McGaw
f262ee6454
Resolver cli changes
...
- Max of 10 simultaneous goroutines to avoid being throttled by DNS
- All template formatting moved to formatLine function
- resolveRepeat is synchronous to avoid being throttled by DNS
2020-06-02 23:10:04 +00:00
Quentin McGaw
3ab1298b1f
Main function improved
...
- More explicit cli operation
- Using ctx and os.Args injected for eventual later testing
- Returning exit code
- Cli code moved to cli package
2020-06-02 23:03:18 +00:00
Quentin McGaw
a7739b6f5d
Add multi hop regions and ips for Surfshark
2020-05-31 19:50:28 +00:00
Quentin McGaw
96e57d2c32
Surfshark ( #167 )
2020-05-29 07:24:27 -04:00
Quentin McGaw
85a93bdd34
Remove timestamps from program logs
...
- Using suppress-timestamps for openvpn
- Using custom regexp for tinyproxy, shadowsocks and unbound
- Time is now only shown once per line
- Log level of subprogram is preserverd
2020-05-29 11:17:14 +00:00
Quentin McGaw
3f6d3d7c2a
Openvpn files parser tool binary
2020-05-29 10:13:42 +00:00
Quentin McGaw
09a0ba1228
DNS Resolver tool binary
2020-05-29 10:13:29 +00:00
Quentin McGaw
aac4298f69
Moved main.go to cmd/gluetun/main.go
2020-05-28 23:59:35 +00:00
Quentin McGaw
43c15b3e68
Removed double message in port forwarding logging
2020-05-18 13:39:01 +00:00
Quentin McGaw
ab223a5e06
User specified iptables rules ( #161 )
2020-05-18 09:37:34 -04:00
Quentin McGaw
5eb1859f41
Fix #156 falls back to dns on ipv4 only
2020-05-09 00:54:49 +00:00
Quentin McGaw
b45fa026dd
Improved openvpn run loop
2020-05-09 00:43:09 +00:00
Quentin McGaw
da739a0c3d
Fix waitForAll context for graceful exits
2020-05-07 12:58:37 +00:00
Quentin McGaw
0dc400b540
Fix Unbound run loop logic
...
- Plain DNS is used only for the first resolving of github.com to obtain block lists and crypto files required by Unbound
- DNS over TLS is used at all time by the system and the Go program thereafter, even between periodic restarts
- Downtime during a periodic update is < 1 second
- On an Unbound start or unexpected exit error, the container falls back on the unencrypted version of the DNS in order to try restarting Unbound
2020-05-07 12:56:49 +00:00
Quentin McGaw
d73765a5f5
DNS_UPDATE_PERIOD environment variable
2020-05-05 18:00:56 +00:00
Quentin McGaw
754bab9763
Unbound restart logic
...
- Update files and restart unbound every 24hours
- HTTP route to force update & restart of Unbound
- Fix #151
2020-05-02 17:08:15 +00:00
Quentin McGaw
507374ca4e
Improve openvpn run loop logs
2020-05-02 17:03:11 +00:00
Quentin McGaw
c068484fa0
Initial DNS IP is ipv4/6 depending on DOT_IPV6
2020-05-02 15:41:28 +00:00
Quentin McGaw
363fabc810
Reduced main.go code complexity
2020-05-02 14:48:18 +00:00
Quentin McGaw
bc05ff34fd
Launch DNS over TLS after tunneling
...
- No data is downloaded before tunneling
- Fixes #127
2020-05-02 13:11:41 +00:00
Quentin McGaw
8e77842f1e
FatalOnError cancels parent context
2020-05-02 13:05:09 +00:00
Quentin McGaw
41168f88cd
Improved connected signaling mechanism
2020-05-01 03:15:49 +00:00
Quentin McGaw
f4cd1896c9
Go HTTP control server with restart openvpn route
...
- Fix #147
- Dockerfile updated
- Documentation updated
- Using contexts to restart openvpn
- Code foundation for more http routes
2020-04-30 23:41:57 +00:00
Quentin McGaw
944e6a107b
Logs wait function errors as soon as they happen
2020-04-30 23:39:28 +00:00
Quentin McGaw
b6135d2476
Support consoles without /dev/stdout
2020-04-30 23:34:35 +00:00
Quentin McGaw
c9b6e79792
Clear ip status file on termination
2020-04-30 12:55:07 +00:00
Quentin McGaw
94255aaa38
Better onConnected logic
...
- First port forward after 5 seconds
- Public IP obtained ASAP
- Logging in main only
- Allow port forward firewall with 1 second timeout local context
2020-04-30 12:54:48 +00:00
Quentin McGaw
ac706bd156
Wait for openvpn to exit on program termination
2020-04-30 11:01:22 +00:00
Quentin McGaw
d864a9f580
Refixes #148
2020-04-30 10:48:26 +00:00
Quentin McGaw
45a7a5b9e2
Fix build
2020-04-30 00:46:29 +00:00
Quentin McGaw
9af2a7a640
Retry port forwarding after 5 seconds, fix #148
2020-04-30 00:02:27 +00:00
Quentin McGaw
eb62ad06db
Better context handling (prep for restart logic)
2020-04-29 23:59:23 +00:00
Quentin McGaw
a033637e85
Better exit handling
2020-04-29 01:27:42 +00:00
Quentin McGaw
b0ea739c20
Restarts openvpn on failure without Docker restart ( #144 )
2020-04-28 21:22:18 -04:00
Quentin McGaw
e94f4283e1
Port forwards 1 second after openvpn connects
2020-04-27 12:10:36 +00:00
Quentin McGaw
f1569dac05
Each stream uses a different color, fixes #136
2020-04-19 20:40:31 +00:00
Quentin McGaw
4cb32ef9dc
Reliably wait for all processes to exit
2020-04-19 20:10:48 +00:00
Quentin McGaw
e805d42197
Updated dependencies
2020-04-19 18:13:48 +00:00
Quentin McGaw
422bd8d428
Log stderr stream from shadowsocks
2020-04-14 12:22:14 +00:00
Quentin McGaw
768147095f
Golangcilint in build pipeline and fix lint errors
...
- Fix bad permissions bits for files
- VPNSP is 'private internet access' instead of 'pia' (retro compatible)
- Check errors of deferred unsetEnv functions in params package
- Other lint errors fixing and code simplifications
2020-04-12 20:05:28 +00:00
Quentin McGaw
3d7cfb125a
Using WithPrefix for loggers
2020-04-12 19:07:19 +00:00
Quentin McGaw
3ac3e5022c
IP_STATUS_FILE and routing improvements ( #130 )
...
- Obtains VPN public IP address from routing table
- Logs and writes VPN Public IP address to `/ip` as soon as VPN is up
- Obtain port forward, logs it and writes it as soon as VPN is up
- Routing fully refactored and tested
- Routing reads from `/proc/net/route`
- Routing mutates the routes using `ip route ...`
2020-04-12 08:55:13 -04:00
Quentin McGaw
60cec716b2
Clears port forward status file at exit, fix #125
2020-04-09 12:11:36 +00:00