IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    shadowsocket和ipset实现科学上网

    夜行人发表于 2017-06-07 06:24:33
    love 0

    1. 背景

    我们有了专线接入的,而基于shadowsocket,网上的资料已经无法访问了,经过一翻摸索,终于又还原出来

    2. 使用原有软件

    上面专线版本,我们已经安装了一些软件,这里可以继续用

    • dnsmasq
    • pdnsd

    3. shadowsocket配置

    服务器端已经有了,这里讲下客户端,CentOS 6安装shadowsocket 3.x比较麻烦,这里安装2.x的

    配置yum源

    sudo cat > /etc/yum.repos.d/librehat-shadowsocks.repo <<EOF
    [librehat-shadowsocks]
    name=Copr repo for shadowsocks owned by librehat
    baseurl=https://copr-be.cloud.fedoraproject.org/results/librehat/shadowsocks/epel-6-$basearch/
    type=rpm-md
    skip_if_unavailable=True
    gpgcheck=1
    gpgkey=https://copr-be.cloud.fedoraproject.org/results/librehat/shadowsocks/pubkey.gpg
    repo_gpgcheck=0
    enabled=1
    enabled_metadata=1
    EOF

    安装

    sudo yum install shadowsocks-libev

    连接shadowsocket

    # 下面需要以root身份运行,主要是ulimit
    ulimit -SHn 65535
    # -v参数为输出详细信息,在debug的时候有用
    # 要用ss-redir才行,ss-local不支持iptables REDIRECT的方式
    su - ssproxy bash -c "ss-redir -s ss_svr_ip -p 58000 -k abc_pass -m aes-256-cfb -l 1080 -b 0.0.0.0 -v"

    4. 设置dnsmasq

    sudo cat > /data/conf/dnsmasq/ss_kexue.conf <<EOF
    server=/facebook.com/127.0.0.1#1053
    ipset=/facebook.com/ss_kexue
    EOF
    # 另外需要修改dnsmasq.conf,让它包含ss_kexue.conf,并重启dnsmasq

    5. 设置ipset

    # 新增hash表
    sudo /usr/sbin/ipset -N ss_kexue iphash
    # 添加facebook的ip倒表里
    sudo ipset add ss_kexue facebook_ip
    # 从旧的hash表里移除
    sudo ipset del kk_kexue facebook_ip

    6. 设置iptables

    # 需要写到配置文件
    sudo iptables -t nat -A PREROUTING -p tcp -m set --match-set ss_kexue dst -j REDIRECT --to-port 1080
    sudo iptables -A RH-Firewall-1-INPUT -s 192.168.0.0/16 -p tcp --dport 1080 -j ACCEPT
    sudo iptables -A RH-Firewall-1-INPUT -s 172.16.28.0/23 -p tcp --dport 1080 -j ACCEPT

    好了,现在应该可以了

    参考资料

    • 关于 shadowsocks 3 个主要程序的说明
    • 在 ArchLinux 上配置 shadowsocks + iptables + ipset 实现自动分流
    • 小米路由器mini折腾之自动翻墙篇


沪ICP备19023445号-2号
友情链接