mirror of
https://github.com/vimagick/dockerfiles.git
synced 2025-01-12 04:23:04 +02:00
add stunnel
This commit is contained in:
parent
da0314427c
commit
d448cbf7fd
@ -171,6 +171,7 @@ A collection of delicious docker recipes.
|
|||||||
- [x] shadowsocks-arm
|
- [x] shadowsocks-arm
|
||||||
- [x] shadowsocks-libev-arm :+1:
|
- [x] shadowsocks-libev-arm :+1:
|
||||||
- [x] squid
|
- [x] squid
|
||||||
|
- [x] stunnel
|
||||||
- [x] tor
|
- [x] tor
|
||||||
|
|
||||||
## VPN
|
## VPN
|
||||||
|
15
stunnel/Dockerfile
Normal file
15
stunnel/Dockerfile
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
#
|
||||||
|
# Dockerfile for stunnel
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM alpine
|
||||||
|
|
||||||
|
MAINTAINER kev <noreply@easypi.info>
|
||||||
|
|
||||||
|
RUN apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing stunnel
|
||||||
|
|
||||||
|
COPY docker-entrypoint.sh /entrypoint.sh
|
||||||
|
|
||||||
|
VOLUME /etc/stunnel
|
||||||
|
|
||||||
|
ENTRYPOINT ["/entrypoint.sh"]
|
94
stunnel/README.md
Normal file
94
stunnel/README.md
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
stunnel
|
||||||
|
=======
|
||||||
|
|
||||||
|
### Overview
|
||||||
|
|
||||||
|
domain | ip:port | country | services
|
||||||
|
-------| ------------ | ------- | ------------------------------
|
||||||
|
master | 1.2.3.4:4911 | Japan | openvpn-server, stunnel-server
|
||||||
|
bridge | 5.6.7.8:1194 | China | stunnel-client
|
||||||
|
N/A | 192.168/16 | China | openvpn-client
|
||||||
|
|
||||||
|
### docker-compose.yml
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# In Japan
|
||||||
|
master:
|
||||||
|
image: vimagick/stunnel
|
||||||
|
ports:
|
||||||
|
- "4911:4911"
|
||||||
|
environment:
|
||||||
|
- CLIENT=no
|
||||||
|
- SERVICE=openvpn
|
||||||
|
- ACCEPT=0.0.0.0:4911
|
||||||
|
- CONNECT=server:1194
|
||||||
|
external_links:
|
||||||
|
- openvpn_server_1:server
|
||||||
|
restart: always
|
||||||
|
|
||||||
|
# In China
|
||||||
|
bridge:
|
||||||
|
image: vimagick/stunnel
|
||||||
|
ports:
|
||||||
|
- "1194:1194"
|
||||||
|
environment:
|
||||||
|
- CLIENT=yes
|
||||||
|
- SERVICE=openvpn
|
||||||
|
- ACCEPT=0.0.0.0:1194
|
||||||
|
- CONNECT=server:4911
|
||||||
|
extra_hosts:
|
||||||
|
- server:1.2.3.4
|
||||||
|
restart: always
|
||||||
|
```
|
||||||
|
|
||||||
|
### Server Setup (Cloud)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# master server (Japan)
|
||||||
|
docker-compose up -d master
|
||||||
|
```
|
||||||
|
|
||||||
|
### Client Setup (Cloud)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# bridge server (China)
|
||||||
|
docker-compose up -d bridge
|
||||||
|
```
|
||||||
|
|
||||||
|
### Client Setup (Local)
|
||||||
|
|
||||||
|
File: /etc/stunnel/stunnel.conf
|
||||||
|
|
||||||
|
```ini
|
||||||
|
foreground = yes
|
||||||
|
client = yes
|
||||||
|
|
||||||
|
[openvpn]
|
||||||
|
accept = 127.0.0.1:1194
|
||||||
|
connect = 1.2.3.4:4911
|
||||||
|
```
|
||||||
|
|
||||||
|
> Pro Tip: Running stunnel locally is faster.
|
||||||
|
|
||||||
|
### OpenVPN Setup (Partial)
|
||||||
|
|
||||||
|
```ini
|
||||||
|
# For Cloud Setup
|
||||||
|
...
|
||||||
|
remote 5.6.7.8 1194 tcp
|
||||||
|
route 192.168.0.0 255.255.0.0 net_gateway
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
```ini
|
||||||
|
# For Local Setup
|
||||||
|
...
|
||||||
|
remote 127.0.0.1 1194 tcp
|
||||||
|
route 1.2.3.4 255.255.255.255 net_gateway
|
||||||
|
route 192.168.0.0 255.255.0.0 net_gateway
|
||||||
|
....
|
||||||
|
```
|
||||||
|
|
||||||
|
### References
|
||||||
|
|
||||||
|
- <https://community.openvpn.net/openvpn/wiki>
|
12
stunnel/docker-compose.yml
Normal file
12
stunnel/docker-compose.yml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
stunnel:
|
||||||
|
image: vimagick/stunnel
|
||||||
|
ports:
|
||||||
|
- "4911:4911"
|
||||||
|
environment:
|
||||||
|
- CLIENT=no
|
||||||
|
- SERVICE=openvpn
|
||||||
|
- ACCEPT=0.0.0.0:4911
|
||||||
|
- CONNECT=server:1194
|
||||||
|
external_links:
|
||||||
|
- openvpn_server_1:server
|
||||||
|
restart: always
|
26
stunnel/docker-entrypoint.sh
Executable file
26
stunnel/docker-entrypoint.sh
Executable file
@ -0,0 +1,26 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
cd /etc/stunnel
|
||||||
|
|
||||||
|
cat > stunnel.conf <<_EOF_
|
||||||
|
foreground = yes
|
||||||
|
setuid = stunnel
|
||||||
|
setgid = stunnel
|
||||||
|
socket = l:TCP_NODELAY=1
|
||||||
|
socket = r:TCP_NODELAY=1
|
||||||
|
cert = /etc/stunnel/stunnel.pem
|
||||||
|
client = ${CLIENT:-no}
|
||||||
|
|
||||||
|
[${SERVICE}]
|
||||||
|
accept = ${ACCEPT}
|
||||||
|
connect = ${CONNECT}
|
||||||
|
_EOF_
|
||||||
|
|
||||||
|
if ! [ -f stunnel.pem ]
|
||||||
|
then
|
||||||
|
openssl req -x509 -nodes -newkey rsa:2048 -days 3650 -subj '/CN=stunnel' \
|
||||||
|
-keyout stunnel.pem -out stunnel.pem
|
||||||
|
chmod 600 stunnel.pem
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec stunnel "$@"
|
Loading…
Reference in New Issue
Block a user