Ubuntu18 配置

 

        /etc/default/grub引导文件,要有备份的好习惯

sudo cp /etc/default/grub /etc/default/grub.bak
sudo -H gedit /etc/default/grub

  2、打开之后找到以下这句

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

  然后将其改为:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pci=nomsi"

  3、保存关闭grub文件,更新grub引导,并重启

sudo update-grub
sudo reboot

 

  Nivida  

 

ubuntu-drivers devices

gnome tweak tool 终端美化 https://www.cnblogs.com/kingstacker/p/7633069.html

wine - idm

. Anconda  cuda tensflow

 

五笔输入法的安装

sudo apt-get install fcitx-table-wubi

wine 的安装

git clone https://github.com/ssrbackup/sr

1、下载ssr客户端

git clone https://github.com/ssrbackup/sr

2、配置ss文件

进入刚刚clone下来的文件夹,有一个文件叫config.json/user-config.json,这是配置文件的模板,复制一份到/etc/s.json

cp config.json /etc/s.json

然后对这个文件进行配置:

sudo gedit /etc/s.json

用下面替换该文件中的内容(具体的服务器地址,端口,密码,加密方式,协议插件,混淆插件从SS帐号提供商那里获取。):

{
    "server": "0.0.0.0", 
    "server_ipv6": "::",
    "server_port": 80890,
    "local_address": "127.0.0.1",
    "local_port": 1080,

    "password": " ",
    "method": "chacha20",
    "protocol": "auth_sha1_v4",
    "protocol_param": "",
    "obfs": "http_simple",
    "obfs_param": "",
    "speed_limit_per_con": 0,
    "speed_limit_per_user": 0,

    "additional_ports" : {}, // only works under multi-user mode
    "additional_ports_only" : false, // only works under multi-user mode
    "timeout": 120,
    "udp_timeout": 60,
    "dns_ipv6": false,
    "connect_verbose_info": 0,
    "redirect": "",
    "fast_open": false
}

主要用到的配置是下面的这几个选项:

"server": "0.0.0.0",  # 服务器地址  对于ss:ping+域名,得到地址。
"server_port": 80890,    # 端口
"password": " ",    # 密码
"method": "chacha20",      # 加密方式
"protocol": "auth_sha1_v4",  # 协议插件
"obfs": "http_simple",    # 混淆插件

3、启动ssr客户端

python ~/sr/s/local.py -c /etc/s.json        

注:如果出错:

IPv6 support
Traceback (most recent call last):
  File "local.py", line 81, in 
    main()
  File "local.py", line 43, in main
    config = shell.get_config(True)
  File "/home/miliimoulins/sr/s/../s/shell.py", line 299, in get_config
    check_config(config, is_local)
  File "/home/miliimoulins/sr/s/../s/shell.py", line 129, in check_config
    encrypt.try_cipher(config['password'], config['method'])
  File "/home/miliimoulins/sr/s/../s/encrypt.py", line 46, in try_cipher
    Encryptor(key, method)
  File "/home/miliimoulins/sr/s/../s/encrypt.py", line 90, in __init__
    random_string(self._method_info[1]))
  File "/home/miliimoulins/sr/s/../s/encrypt.py", line 119, in get_cipher
    return m[2](method, key, iv, op)
  File "/home/miliimoulins/sr/s/../s/crypto/sodium.py", line 71, in __init__
    load_libsodium()
  File "/home/miliimoulins/sr/s/../s/crypto/sodium.py", line 42, in load_libsodium
    raise Exception('libsodium not found')
Exception: libsodium not found

因为当前Python版本为系统自带python 2.7,缺很多东西。将python默认版本改为anaconda python 3(安装见系列3,推荐用这个),这是一种临时修改python默认版本的方法:

export PATH=~/anaconda3/bin:$PATH
source ~/.bashrc

【如果直接修改python默认版本为anaconda3: sudo gedit ~/.bashrc 在最后一行添加: export PATH=~/anaconda3/bin:$PATH ,保存。然后:source ~/.bashrc
然后再执行: python ~/sr/s/local.py -c /etc/s.json ,成功:

IPv6 support
2018-04-20 15:53:35 INFO     util.py:85 loading libsodium from /home/miliimoulins/anaconda3/lib/libsodium.so.23
2018-04-20 15:53:35 INFO     local.py:50 local start with protocol[auth_sha1_v4] password [b'jfahtt'] method [chacha20] obfs [http_simple] obfs_param []
2018-04-20 15:53:35 INFO     local.py:54 starting local at 127.0.0.1:1080
2018-04-20 15:53:35 INFO     asyncdns.py:324 dns server: [('127.0.0.1', 53)]

4、转换HTTP代理

Shadowsocks默认是用Socks5协议的,对于Terminal的get,wget等走http协议的地方是无能为力的,所以需要转换成http代理,加强通用性,这里使用的转换方法是基于Polipo的。

sudo apt-get install polipo      # 安装Polipo
sudo gedit /etc/polipo/config    # 修改配置文件

将下面的内容整个替换到文件中并保存:

# This file only needs to list configuration variables that deviate
# from the default values. See /usr/share/doc/polipo/examples/config.sample
# and "polipo -v" for variables you can tweak and further information.
logSyslog = false
logFile = "/var/log/polipo/polipo.log"

socksParentProxy = "127.0.0.1:1080"
socksProxyType = socks5

chunkHighMark = 50331648
objectHighMark = 16384

serverMaxSlots = 64
serverSlots = 16
serverSlots1 = 32

proxyAddress = "0.0.0.0"
proxyPort = 8123

重启Polipo:

/etc/init.d/polipo restart

验证代理是否正常工作:

export http_proxy="http://127.0.0.1:8123/"
curl www.google.com

如果正常,就会返回抓取到的Google网页内容。此时,终端里面可以访问外网了。
另外,在浏览器中输入http://127.0.0.1:8123/便可以进入到Polipo的使用说明和配置界面。

5、配置浏览器

之前参考别人的方法来配置了firefox,it worked,但是到了chrome方法就不适用了。我们可以直接来修改全局网络
打开system settings->network->network proxy
Method:Manual
下面都设置为:127.0.0.1 端口:8123
点击 Apply system wide

 

6.PAC模式配置

genpac --proxy="SOCKS5 127.0.0.1:1080" --gfwlist-proxy="SOCKS5 127.0.0.1:1080" -o autoproxy.pac --gfwlist-local="本地GFWLIST地址"

Done!!!Cheers!

注意:

每次开机后都要执行:python ~/sr/s/local.py -c /etc/s.json 来启动ss服务。
有时候不走运的话,误杀该进程(关机 或者关闭当前terminal 或者ctrl z当前python进程)会发生非常烦人的事:内网外网都上不了,重启也没用,会提示你:

curl: (7) Failed to connect to 127.0.0.1 port 8123: Connection refused

Solution:

  • 首先一般这种情况下,如果你不是直接关闭的当前terminal,则你的Python进程可能还没有杀掉,所以 ps aux|grep python,然后kill -9 process_number(那个python进程的process number)。

  • 然后重新启动ss服务。ps:我建议用screen命令来执行,至少不用担心误杀进程:screen python ~/sr/s/local.py -c /etc/s.json。pps:screen模式下,ctrl+a,然后d(detach),或者直接可以关闭当前terminal。

  • 如果还是不能上网: 重启polipo: /etc/init.d/polipo restart

  • 验证:export http_proxy="http://127.0.0.1:8123/"curl www.google.com

6、Ubuntu开机后自动运行

现在可以科学上网了,可是每次开机都要手动打开终端输入命令,虽然命令并不长,但是每次都去手动输入,显得自己很low,而且关掉终端代理就关闭了(如果不是用的screen命令),还会引发上面一系列问题。

Solution:

  • 写个脚本

我们可以在比如/home下新建个文件叫做shadow.sh,在里面写上我们启动ssr客户端需要的命令,然后保存即可。因为有时候会遇到启动ss服务后依旧内网外网都不能上,就每次都自动重启一下polipo吧:

#!/bin/bash
#shadow.sh
screen python ~/sr/s/local.py -c /etc/s.json
/etc/init.d/polipo restart

到终端执行命令 sh /home/shadow.sh,成功的话会有信息输出。你也可以到浏览器去试试。
【 如果用的不是screen, 直接python的话:这个时候你虽然输入的少了,可是关了终端还是会掉的,我们可以让它在后台运行,nohup sh /home/shadow.sh & 。】

至此:开机后打开终端运行:sh /home/shadow.sh,就可以自由上网了。

  • 加入开机运行

这里我们需要 /etc下编辑一个叫rc.local的文件,需要root权限 sudo gedit /etc/rc.local
[ 或者:在终端先su获取root权限( ps: 关于su 输入密码之后显示su: Authentication failure的解决办法:

sudo passwd root    # 输入的命令
[sudo] password for miliimoulins: 
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

然后再次su就可以进入root权限了):gedit /etc/rc.local ]

编辑:在exit 0前面添加:sh /home/shadow.sh

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

sh /home/shadow.sh>/home/d.txt
exit 0

然后ctrl+s保存。
这个时候你可以reboot重启,测试下看看能不能后台自动运行。对于一般的需要开机自启动的对象到这里没问题了。
但是本例不行。可以先去看下我们要它输出的d.txt竟然发现是 Must be connected to a terminal,打开浏览器果然是无法连接代理服务器。

经过一番搜索发现远离linux是找不到screen这条命令?
参考对于sslocal执行时的解决办法:需要添加路径,发现sslocalssserver这两个命令是被存在 /usr/local/bin下面的,其实不用去profile添加了,直接把这两个文件移动到/bin下,就可以了。
但是对于screen不行。
所以目前还是先在开机后,打开终端输入sh /home/shadow.sh吧hhhhhh,还是很方便的。
关于如何顺利的开机自启动screen命令,现在先不花时间去研究了,毕竟一行命令已经很方便了。至少在windows和Mac下开机了也要手动打开s这个软件。后面有时间弄好了再更新。

Whatever, cheers!

 



作者:Miliimoulins
链接:https://www.jianshu.com/p/a0f3268bfa33
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

你可能感兴趣的:(Ubuntu)