Linux命令行下的科学上网方式

Posted by 刘勇 on 2020-04-22

Linux命令行下的科学上网方式

机器说明

1
2
3
Debian/Ubuntu
AWS海外机器(ssserver)ip:10.69.30.11
客户端机器(需科学上网的机器)ip:10.63.108.13

服务端操作

  • 安装shadowsocks服务
1
apt-get update && apt-get install shadowsocks -y
  • 设置ss服务端配置文件/etc/shadowsocks/shadowsocks.json,内容如下:
1
2
3
4
5
6
7
8
9
10
11
{
"server":"10.69.30.11", #ss服务端机器IP
"server_port":9889, #ss服务端port
"local_address": "127.0.0.1", #ss客户端机器ip
"local_port":9888, #ss客户端机器port
"password":"Bfadfx", #客户端连接密码
"timeout":300,
"method":"aes-256-cfb", #加密算法
"fast_open": false, #快速连接模式
"workers": 4 #线程数
}
  • 启动ss服务端
1
ssserver -c /etc/shadowsocks/shadowsocks.json -d start
  • 判断是否成功
1
2
3
root@localhost:~# netstat -tunlp |grep 9889
tcp 0 0 10.69.30.11:9889 0.0.0.0:* LISTEN 824/python
udp 0 0 10.69.30.11:9889 0.0.0.0:* 824/python

客户端操作

  • 如果客户端使用socks5方式进行科学上网,则安装shadowsocks服务,http/https科学上网方式参考下文。
1
apt-get update && apt-get install shadowsocks -y
  • 设置ss客户端配置文件/etc/shadowsocks/shadowsocks.json,内容如下:
1
2
3
4
5
6
7
8
9
10
11
{
"server":"10.69.30.11",
"server_port":9889,
"local_address": "127.0.0.1",
"local_port":1080,
"password":"Bfadfx",
"timeout":300,
"method":"aes-256-cfb",
"fast_open": false,
"workers": 1
}
  • 启动ss客户端
1
sslocal -c /etc/shadowsocks/shadowsocks.json -d start
  • 判断是否成功
1
2
3
root@localhost:~# netstat -tunlp |grep 1080
tcp 0 0 127.0.0.1:1080 0.0.0.0:* LISTEN 1363/python
udp 0 0 127.0.0.1:1080 0.0.0.0:* 1363/python
  • 测试是否可以科学上网
1
2
#指定走socks5协议
curl --socks5 127.0.0.1:1080 myip.ipip.net

http方式

  • 如果客户端想使用http/https方式进行科学上网。则需使用privoxy这个软件,把socks5代理转换成http代理。安装方式:
1
apt-get update && apt-get install privoxy -y
  • 备份并新增配置文件
1
2
3
4
# 先备份原配置文件
mv /etc/privoxy/config /etc/privoxy/config.bak
# 在新建一个配置文件
vim /etc/privoxy/config
  • 添加配置内容
1
2
3
4
5
6
7
8
9
10
# 转发给本地sslocal监听的ip:port
forward-socks5 / 127.0.0.1:1080 .

# privoxy服务监听地址
listen-address localhost:8118

# local network do not use proxy
forward 192.168.*.*/ .
forward 10.*.*.*/ .
forward 127.*.*.*/ .
  • 启动服务
1
/etc/init.d/privoxy start 或者 systemctl start privoxy
  • 判断是否成功
1
2
root@localhost:~# netstat -tunlp |grep 8118
tcp 0 0 127.0.0.1:8118 0.0.0.0:* LISTEN 2815/privoxy
  • 测试是否可以科学上网
1
2
3
4
5
6
7
8
9
#临时命令测试https方式
https_proxy=https://127.0.0.1:8118 curl https://myip.ipip.net

#临时命令测试http方式
http_proxy=http://127.0.0.1:8118 curl http://myip.ipip.net

#全局代理
export https_proxy=https://127.0.0.1:8118
export http_proxy=http://127.0.0.1:8118

快捷命令

  • 设置/usr/local/bin/proxy文件,内容如下
1
2
#!/bin/bash
http_proxy=http://127.0.0.1:8118 https_proxy=https://127.0.0.1:8118 $*
  • 添加可执行权限
1
chmod +x /usr/local/bin/proxy
  • 对想执行的命令添加proxy前缀即可
1
proxy curl http://myip.ipip.net


支付宝打赏 微信打赏

赞赏一下