This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

Moses

Moses 是一个使用加密连接的 Socks5 代理,原理与 ShadowSocks 一致, 不过加密方法换成了 TLS, 支持服务端、客户端双向验证,更安全,不过连接 速度也更慢。

安裝

❯ pip install moses

或者使用最新代码:

❯ git clone https://github.com/l04m33/moses.git
❯ pip install ./moses

使用方法

❯ moses -h
usage: moses [-h] (-c | -s) [-b <ADDRESS>:<PORT>] [-n] [-l LOCAL_CERT]
             [-r REMOTE_CERT] [-e CIPHERS] [--backlog BACKLOG]
             [--loglevel {critical,fatal,error,warning,info,debug}]
             [--block-size BLOCK_SIZE] [-k KEEPALIVE] [-p <ADDRESS>:<PORT>]
             [-f <ADDRESS>:<PORT>]

optional arguments:
  -h, --help            show this help message and exit

Common Options:
  -c, --client          Client mode
  -s, --server          Server mode
  -b <ADDRESS>:<PORT>, --bind <ADDRESS>:<PORT>
                        IP & port to bind (default: :1080)
  -n, --no-tls          Do not use TLS encryption
  -l LOCAL_CERT, --local-cert LOCAL_CERT
                        Local SSL certificates (default: ./local.pem)
  -r REMOTE_CERT, --remote-cert REMOTE_CERT
                        Remote SSL certificates (default: ./remote.pem)
  -e CIPHERS, --ciphers CIPHERS
                        Ciphers to use for encryption. Run `openssl ciphers`
                        to see available ciphers
  --backlog BACKLOG     Backlog for the listening socket (default: 128)
  --loglevel {critical,fatal,error,warning,info,debug}
                        Log level (default: info)
  --block-size BLOCK_SIZE
                        Block size for data streaming, in bytes (default:
                        2048)
  -k KEEPALIVE, --keepalive KEEPALIVE
                        TCP keepalive parameters, in the form of
                        <keepalive_time>,<keepalive_probes>,<keepalive_intvl>.
                        See `man 7 tcp` for details (default: keepalive
                        disabled)

Client Options:
  -p <ADDRESS>:<PORT>, --peer <ADDRESS>:<PORT>
                        Peer (server) address

Server Options:
  -f <ADDRESS>:<PORT>, --forward <ADDRESS>:<PORT>
                        Simply forward all connections to the given address

Socks5 代理

启动服务器:

❯ moses -s -b some.server.addr.ess:32000 \
        -l server_key.pem -r client_cert.pem

启动客户端:

❯ moses -c -b 127.0.0.1:1080 -p some.server.addr.ess:32000 \
        -l client_key.pem -r server_cert.pem

转发 HTTP 代理

Moses 本身没有实现 HTTP 代理,不过你可以用 Moses 将 HTTP 代理请求转 发到其他 HTTP 代理程序(例如 Privoxy )上。假设你的服务器在 8118 端 口上配置了一个 Privoxy 实例,这样启动 Moses 服务器即可:

❯ moses -s -b some.server.addr.ess:32000 \
        -f 127.0.0.1:8118 \
        -l server_key.pem -r client_cert.pem

Linux 下的全局透明代理

staff 是一个透明代理脚本,通过与 moses 配合可以自动转发 所有 DNS 请求和 TCP 连接, poor man’s VPN :)

使用方法(假设 Moses 客户端运行在 127.0.0.1:1080 上):

❯ staff -p 127.0.0.1:1080

然后用 iptables 添加这三条规则(当然 eth0 要替换成你自己的网络接口):

❯ iptables -t nat -I OUTPUT -o eth0 -p udp --dport 53  -j DNAT --to 127.0.0.1:32000
❯ iptables -t nat -I OUTPUT -o eth0 -p tcp --dport 80  -j DNAT --to 127.0.0.1:32000
❯ iptables -t nat -I OUTPUT -o eth0 -p tcp --dport 443 -j DNAT --to 127.0.0.1:32000

这样所有 DNS 请求和目标端口是 80、443 的 TCP 连接都会走 Moses 代理。

你也可以更进一步,用 geoip 规则忽略某墙国的 IP (需要安装 xtables-addons ):

❯ iptables -t nat -I OUTPUT -o eth0 -p tcp -m geoip ! --dst-cc CN -j DNAT --to 127.0.0.1:32000

要查看其他选项的用法,执行 staff -h .

License

MIT.

Release History

Release History

0.10.0

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.9.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
moses-0.10.0.tar.gz (17.8 kB) Copy SHA256 Checksum SHA256 Source Oct 12, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting