示例#1
0
文件: vpn.py 项目: zylucifer/fqrouter
import gevent
import gevent.socket
import dpkt
import config
import traceback
import urllib2
import fqsocks.httpd

FQROUTER_VERSION = 'UNKNOWN'
LOGGER = logging.getLogger('fqrouter.%s' % __name__)
LOG_DIR = '/data/data/fq.router2/log'
MANAGER_LOG_FILE = os.path.join(LOG_DIR, 'manager.log')
FQDNS_LOG_FILE = os.path.join(LOG_DIR, 'fqdns.log')

nat_map = {}  # sport => (dst, dport), src always be 10.25.1.1
default_dns_server = config.get_default_dns_server()
DNS_HANDLER = fqdns.DnsHandler(
    enable_china_domain=True,
    enable_hosted_domain=True,
    original_upstream=('udp', default_dns_server,
                       53) if default_dns_server else None)


def handle_ping(environ, start_response):
    try:
        LOGGER.info('VPN PONG/%s' % FQROUTER_VERSION)
    except:
        traceback.print_exc()
        os._exit(1)
    start_response(httplib.OK, [('Content-Type', 'text/plain')])
    yield 'VPN PONG/%s' % FQROUTER_VERSION
示例#2
0
    )]
SOCKS_RULES = [
    (
        {'target': 'DROP', 'extra': 'icmp type 5'},
        ('filter', 'OUTPUT', '-p icmp --icmp-type 5 -j DROP')
    ), (
        {'target': 'ACCEPT', 'destination': '127.0.0.1'},
        ('nat', 'OUTPUT', '-p tcp -d 127.0.0.1 -j ACCEPT')
    ), (
        {'target': 'DNAT', 'extra': 'to:10.1.2.3:12345'},
        ('nat', 'OUTPUT', '-p tcp ! -s 10.1.2.3 -j DNAT --to-destination 10.1.2.3:12345')
    ), (
        {'target': 'DNAT', 'extra': 'to:10.1.2.3:12345'},
        ('nat', 'PREROUTING', '-p tcp ! -s 10.1.2.3 -j DNAT --to-destination 10.1.2.3:12345')
    )]
default_dns_server = config.get_default_dns_server()
DNS_HANDLER = fqdns.DnsHandler(
    enable_china_domain=True, enable_hosted_domain=True,
    original_upstream=(default_dns_server, 53) if default_dns_server else None)
fqsocks.fqsocks.DNS_HANDLER = DNS_HANDLER


def handle_ping(environ, start_response):
    try:
        LOGGER.info('PONG/%s' % FQROUTER_VERSION)
    except:
        traceback.print_exc()
        os._exit(1)
    start_response(httplib.OK, [('Content-Type', 'text/plain')])
    yield 'PONG/%s' % FQROUTER_VERSION