寻觅生命中的那一片浅草......

文章属于类别 Network

shadowsocket和ipset实现科学上网

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

好了,现在应该可以了

参考资料

ZZ:高效的 Linux 限流神器 Trickle

请见:高效的 Linux 限流神器 Trickle

zz:开启TCP BBR拥塞控制算法

网络加速,类似第三方软件:锐速(serverSpeeder)

而BBR则是内核级支持,由Google贡献的代码,详细请打开:开启TCP BBR拥塞控制算法

利用linux策略路由处理多出口

我们想增加多一个出口,只有特定的内网源IP才从这里出,所以,有了这个测试

# 增加路由表
sudo /bin/cp /etc/iproute2/rt_tables /data/backup/tmp/rt_tables.${RANDOM}
sudo echo '201 adsl' >> /etc/iproute2/rt_tables

# 添加路由策略,此处以联通出口为例
sudo ip route add default via xx.xxx.83.113 dev em1:0 table adsl

# 查看路由策略
ip route show table adsl

# 设置路由规则
sudo ip rule add from 172.16.28.26 lookup adsl

# 查看规则
ip rule show

# 删除路由规则
sudo ip rule del from 172.16.28.26 lookup adsl

发包工具Packet Sender简明教程

一、背景

  1. 腾讯开放平台的机器并没有独立的公网IP,从外面连进去,必须经过TGW进行转发,连接说明可以参考TGW接入说明
  2. 在处理玩家连接问题,非常的“人体不存在的器官”疼

二、解决方案

  1. web开发组做的TGW测试工具
  2. 本文主角Packet Sender

三、Packet Sender的使用

此软件有Window、Linux、MAC版本,真是业界良心啊,下面主要介绍下它的界面

  1. Name,标记本发包过程的名字,随便填,Save时会用到,如果单次使用,不填也可以
  2. ASCII,发包的内容,参考下面的格式,我们根据实际情况修改域名和端口即可
tgw_l7_forward\r\nHost:app12345.qzoneapp.com:80\r\n\r\n
  1. HEX,自动根据ASCII生成
  2. IP和端口,定义数据发到哪里,填域名也可以
  3. Persistent TCP,这个勾选上,保持TCP的长连接
  4. 如果想下次继续使用,就点击Save,不用就直接Send
  5. 如果是TCP长连接,它会弹一个新的窗口出来,给你发后续的内容
  6. 例如你可以输入“andy”,这时在服务器上抓包,可以抓到andy,抓包指令
tcpdump -i any -X host 192.168.xxx.xxx

现在,我们就可以用这个工具来测试玩家到服务器的连通性了

四、其他

Packet Sender Documentation

2018年十一月
« 2月    
 1234
567891011
12131415161718
19202122232425
2627282930