forked from shadowsocks/shadowsocks
-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add simple ss-tunnel to shadowsocks for dns forward (shadowsocks#759)
* add vscode to .gitignore * add config.json to gitignore * add simple ss-tunnel to shadowsocks for dns forward 1.add tunnel.py file to shadowoscks for dns forward (seem ss-tunnel of ss-libev) 2.add add_header to common.py for add socks5 request header 3.add dns_service dns_server dns_server_port dns_server_port dns_local_port to shell.py and config.json 4.update to udprelay for ss-tunnel (dns forward) 5.update to local.py for ss-tunnel * add config.json.example to shadowsocks * add tunnel_udp_server.close to local.py and tunnel.py * fix error about pep8 and pyflakes for travis * update rename rename add "tunnel_" to dns_service dns_server dns_server_port dns_local_port * fix tunnel for run tunnel alone * fix pep8 for travis * update the config name for tunnel ord name: tunnel_service tunnel_dns_server tunnel_dns_server_port tunnel_dns_local_port new name: both_tunnel_local tunnel_remote tunnel_remote_port tunnel_port * update for tunnel update to local.py shell.py tunnel.py for tunnel * update pep8 for travis * update config to _config for tunnel and fix pep8 * changed "add socks5 header to data" to "add ss header to data" and changed "remove socks5 header" to "remove ss header" * add tcp forward to tunnel and fix a bug for pack_addr from common.py 1. update tunnel to tcprelay.py 2. add tunnel_tcp_server to tunnel.py 3. add tunnel_tcp_server to local.py 4. add `address = to_bytes(address)` to `pack_addr` from common.py (fix a error when address is a domain) * fix pep8 for travis again * remove ss_header from tcprelay.py and update the "header_length" to udprelay.py 1. Remove unnecessary "add ss_header" from tcprelay.py 2. update "data[7:]" to "data[header_length:]" * remove "both_tunnel_local" and fix some error for tunnel * update * update add_header * rename is_tunnel to _is_tunnel shadowsocks#759
- Loading branch information
1 parent
fe13c20
commit e06819c
Showing
7 changed files
with
194 additions
and
35 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -32,3 +32,10 @@ htmlcov | |
|
||
#Emacs | ||
.#* | ||
|
||
#vscode | ||
.idea | ||
.vscode | ||
|
||
#ss | ||
config.json |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
{ | ||
"server":"127.0.0.1", | ||
"server_port":8388, | ||
"local_port":1080, | ||
"password":"password", | ||
"timeout":600, | ||
"method":"aes-256-cfb", | ||
"local_address":"127.0.0.1", | ||
"fast_open":false, | ||
"tunnel_remote":"8.8.8.8", | ||
"tunnel_remote_port":53, | ||
"tunnel_port":53 | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
#!/usr/bin/env python | ||
# -*- coding: utf-8 -*- | ||
# | ||
# Copyright 2012-2015 clowwindy | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); you may | ||
# not use this file except in compliance with the License. You may obtain | ||
# a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | ||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | ||
# License for the specific language governing permissions and limitations | ||
# under the License. | ||
|
||
from __future__ import absolute_import, division, print_function, \ | ||
with_statement | ||
|
||
import sys | ||
import os | ||
import logging | ||
import signal | ||
|
||
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../')) | ||
from shadowsocks import shell, daemon, eventloop, tcprelay, udprelay, asyncdns | ||
|
||
|
||
@shell.exception_handle(self_=False, exit_code=1) | ||
def main(): | ||
shell.check_python() | ||
|
||
# fix py2exe | ||
if hasattr(sys, "frozen") and sys.frozen in \ | ||
("windows_exe", "console_exe"): | ||
p = os.path.dirname(os.path.abspath(sys.executable)) | ||
os.chdir(p) | ||
|
||
config = shell.get_config(True) | ||
daemon.daemon_exec(config) | ||
dns_resolver = asyncdns.DNSResolver() | ||
loop = eventloop.EventLoop() | ||
dns_resolver.add_to_loop(loop) | ||
_config = config.copy() | ||
_config["local_port"] = _config["tunnel_port"] | ||
logging.info("starting tcp tunnel at %s:%d forward to %s:%d" % | ||
(_config['local_address'], _config['local_port'], | ||
_config['tunnel_remote'], _config['tunnel_remote_port'])) | ||
tunnel_tcp_server = tcprelay.TCPRelay(_config, dns_resolver, True) | ||
tunnel_tcp_server._is_tunnel = True | ||
tunnel_tcp_server.add_to_loop(loop) | ||
logging.info("starting udp tunnel at %s:%d forward to %s:%d" % | ||
(_config['local_address'], _config['local_port'], | ||
_config['tunnel_remote'], _config['tunnel_remote_port'])) | ||
tunnel_udp_server = udprelay.UDPRelay(_config, dns_resolver, True) | ||
tunnel_udp_server._is_tunnel = True | ||
tunnel_udp_server.add_to_loop(loop) | ||
|
||
def handler(signum, _): | ||
logging.warn('received SIGQUIT, doing graceful shutting down..') | ||
tunnel_tcp_server.close(next_tick=True) | ||
tunnel_udp_server.close(next_tick=True) | ||
signal.signal(getattr(signal, 'SIGQUIT', signal.SIGTERM), handler) | ||
|
||
def int_handler(signum, _): | ||
sys.exit(1) | ||
signal.signal(signal.SIGINT, int_handler) | ||
|
||
daemon.set_user(config.get('user', None)) | ||
loop.run() | ||
|
||
if __name__ == '__main__': | ||
main() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters