集合一些琐碎的问题解决方法。

解决的东西包括:

  • OS X上在终端里使用代理
  • EI Capitan下使用brew通过代理安装MySQL后无法使用root登录的解决方法
  • 使用Privoxy转换sock5为http

OS X上在终端里使用代理

在环境变量中设置http_proxy与https_proxy,则所有使用这些环境变量的工具,都会通过代理访问网络,包括wget,aria2,axel,还有brew,pip这些间接调用前面的工具等,但不会影响到整个系统,长期生活在代理和流量恐慌中,感觉全局代理还是很不尽人意的

http及https代理设置方法

在shell配置文件中或者终端里

export http_proxy=http://127.0.0.1:8087
export https_proxy=https://127.0.0.1:8087

由于配置文件每次启动都会读取,如果没有启用代理,终端里的网络访问都会出错

也可以直接在命令中指定代理,不过需要工具本身支持,如pip

pip --proxy http://127.0.0.1:8087 install PySocks

socks5代理设置方法

不是所有软件对socks5都支持良好,我使用正常的,只有brew与git

brew启用方法如下,在命令前直接添加代理,但如果已设置好http或https代理,则无法生效

ALL_PROXY=socks5://127.0.0.1:1080 brew install mysql

git的启用方法如下,指定目标网站与代理

git config --global http.https://github.com.proxy socks5://127.0.0.1:1080

之后在git配置文件中可以看到

[http "https://github.com"]
 proxy = socks5://127.0.0.1:1080

接下来,所有从github的流量都会经过socks5代理

EI Capitan下使用brew安装MySQL后无法使用root登录的解决方法

参考了stackoverflow上的答案:mysql-user-db-does-not-have-password-columns-installing-mysql-on-osx

已启用shadowsocks给brew设置代理安装软件的方法

ALL_PROXY=socks5://127.0.0.1:1080 brew install mysql

安装好之后,可以通过两个方式手动启用MySQL,使用start/stop来开启/关闭服务

brew service start mysql
mysql.server start

登录MySQL

mysql -uroot -p

但是安装过程中没有提示过输入root密码,造成无法登录

mysql.server start --skip-grant-tables
mysql>use mysql;
mysql>update user set authentication_string=password('1111') where user='root';
mysql>flush privileges;

退出后,关闭MySQL服务,重启服务,使用配置好的帐号密码登录即可,首次执行命令需要输入

<span class="kwd">ALTER</span> <span class="kwd">USER</span> <span class="str">'root'</span><span class="pun">@</span><span class="str">'localhost'</span><span class="pln"> IDENTIFIED </span><span class="kwd">BY</span> <span class="str">'1111';</span>

主要是因为MySQL 5.7后,移除了password,改用authentication_string。

使用Privoxy转换sock5为http

长时间使用代理,当然,像wbuntu这样的穷学生,主要还是为了省流量,而不是穿墙。

shadowsocks相比GoAgent,稳定,不需要折腾证书,繁琐配置(相对来说),不过许多下载工具都不认socks5协议,但可以使用Privoxy将socks5转换为http,这样就可以通过配置代理,让aria2,axel,wget之类的下载工具,以及WIFI共享shadowsocks的代理。

安装

brew install privoxy

配置

<span class="str">sudo vi /usr/local/etc/privoxy/config
#修改两处
#监听地址,默认为127.0.0.1:8118,仅限本地访问,修改为0.0.0.0,供WIFI共享时其他主机使用
listen-address    0.0.0.0:8118
#转发目标,注意为socks5,末尾没有t,转发到shadowsocks默认1080端口
forward-socks5   /               127.0.0.1:1080 .
</span>

配置开机启动

<span class="kwd">ln -sfv /usr/local/Cellar/privoxy/3.0.23/homebrew.mxcl.privoxy.plist ~/Library/LaunchAgents
</span>

手动载入

launchctl load ~/Library/LaunchAgents/homebrew.mxcl.privoxy.plist
#也可以直接载入
/usr/local/Cellar/privoxy/3.0.23/homebrew.mxcl.privoxy.plist

WIFI共享时,设置http代理,端口为listen-address中配置的端口8118

折腾这么多代理,无非是为了省流量,真希望以后不用为流量烦恼,默默祈福~~