Archlinux下终端进行代理的解决方案

Linux 下软件安装基本都是在终端下进行的....
虽说安装软件基本上选对源就没有无法安装的,但是 Archlinux 下的 yaourt 安装就是社区打包的软件了.
软件来源各种各样,有的是 Google code 上的,有的是 GitHub 上的,有的就是 sourceforge 上的了.
但是在中国的大环境下不能保证上面网站的正常访问 QAQ Google 的话有 hosts 的情况下基本上是 把 http 修改成 https 就可以下载了,其余两个就只能代理进行下载软件并安装了.

# 代理

首先科学上网的话就需要代理,SSH 这样进行端口监听的比较不错.VPN 是全局代理就不用讲述了. 不过 VPN 也可以走路由表进行部分代理(不在本文讨论范围之内)SSH 的话在 Linux 下就是简单的一句 ssh -NfD 127.0.0.1:7070 user@server
因为 SSH 不是 HTTP 代理,所以需要转发,如果是纯 HTTP 代理的话直接配置环境变量即可. 前面写的是本机代理的端口,后面是服务器的用户名和服务器 IP 地址.

# 转发

SSH 是 SOCKET5 代理,但是下载的话基本上就是 HTTP 代理怎么转发呢? 这里就需要一个软件叫做Privoxy (opens new window) Privoxy 可以把 SOCKET5 转 HTTP 代理, 首先安装它 sudo pacman -S privoxy 然后进行配置 sudo vim /etc/privoxy/config在配置文件里面添加 forward-socks5 / 127.0.0.1:7070 . 注意后面有个点,容易忽略. 这个是转入的 SOCKET5 代理,指的是 SSH 的代理监听的端口号. 配置文件里面有句话是 listen-address 127.0.0.1:8118 这个是转发出去的 HTTP 代理的端口号. 这样写好之后, 启动服务 sudo systemctl start privoxy.service

# 配置环境变量

转发实现之后就可以应用在终端里面了, 在终端里面输入

export https_proxy=127.0.0.1:8118
export http_proxy=127.0.0.1:8118
1
2

这样就完成代理的设置了.

Archlinux下安装过wps之后字体发虚的问题

Office 是 Linux 永远的痛...微软的 Office 市场霸主地位是根本无法撼动的... 但是微软那家伙很讨厌 Linux 和开源... Office 产品目前也只有 Windows 和 Mac 据说微软要出 Linux 版本的 Office...但是不知道猴年马月啊 (望天

之所以字体发虚是因为安装 WPS 之后的方正字体使得 Sans 和 Sans-Serif 字体的中文部分默认指向了方正宋体.所以导致个这个问题的发生... 左边是微米黑,右边是装过 WPS 之后映射的宋体字.... 明显右边太难看了有木有!!! 解决方案是自己编写 fonts.conf 设置字体的优先级...
文泉驿提供了一个在线配置生成工具 (opens new window) 这个网页有部分 JS 资源被墙了,所以需要科学上网才能正常使用,需要注意. 配置完成之后点上面的“生成[create]”按钮,将结果复制保存到~/.fonts.conf 就能覆盖系统的字体选择顺序. 注意上面的方法在 Archlinux 下会出现警告错误提示是过时的使用方法. 正确的解决办法是把配置文件写在 /etc/fonts/conf.avail/50-user.conf 这样就可以完美解决字体发虚的问题了.

下面贴一下我的配置方案:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- created by WenQuanYi FcDesigner v0.5 -->
<match>
  <test name="family"><string>Arial</string></test>
  <edit name="family" mode="prepend" binding="strong">
    <string>文泉驿微米黑</string>
      <!-- Please install 文泉驿微米黑 first -->
    <string>文泉驿等宽微米黑</string>
    <string>DejaVu Sans</string>
    <string>DejaVu Sans</string>
    <string>WenQuanYi Micro Hei</string>
      <!-- Please install WenQuanYi Micro Hei first -->
    <string>WenQuanYi Zen Hei</string>
    <string>Liberation Sans</string>
    <string>Droid Sans</string>
    <string>WenQuanYi Bitmap Song</string>
      <!-- Please install WenQuanYi Bitmap Song first -->
    <string>Cantarell</string>
      <!-- Please install Cantarell first -->
    <string>DejaVu Sans Condensed</string>
    <string>DejaVu Sans Light</string>
    <string>DejaVu Sans Mono</string>
    <string>DejaVu Serif</string>
    <string>DejaVu Serif Condensed</string>
    <string>方正书宋_GBK</string>
    <string>方正仿宋_GBK</string>
    <string>方正姚体_GBK</string>
    <string>方正宋体S-超大字符集</string>
    <string>方正宋体S-超大字符集(SIP)</string>
      <!-- Please install 方正宋体S-超大字符集(SIP) first -->
    <string>方正小标宋_GBK</string>
    <string>方正楷体_GBK</string>
    <string>方正细黑一_GBK</string>
    <string>方正行楷_GBK</string>
    <string>方正超粗黑_GBK</string>
    <string>方正隶书_GBK</string>
    <string>方正魏碑_GBK</string>
    <string>方正黑体_GBK</string>
  </edit>
</match>
<match>
  <test name="family"><string>sans-serif</string></test>
  <edit name="family" mode="prepend" binding="strong">
    <string>文泉驿微米黑</string>
      <!-- Please install 文泉驿微米黑 first -->
    <string>文泉驿等宽微米黑</string>
    <string>DejaVu Sans</string>
    <string>DejaVu Sans</string>
    <string>WenQuanYi Micro Hei</string>
      <!-- Please install WenQuanYi Micro Hei first -->
    <string>WenQuanYi Zen Hei</string>
    <string>Liberation Sans</string>
    <string>Droid Sans</string>
    <string>WenQuanYi Bitmap Song</string>
      <!-- Please install WenQuanYi Bitmap Song first -->
    <string>Cantarell</string>
      <!-- Please install Cantarell first -->
    <string>DejaVu Sans Condensed</string>
    <string>DejaVu Sans Light</string>
    <string>DejaVu Sans Mono</string>
    <string>DejaVu Serif</string>
    <string>DejaVu Serif Condensed</string>
    <string>方正书宋_GBK</string>
    <string>方正仿宋_GBK</string>
    <string>方正姚体_GBK</string>
    <string>方正宋体S-超大字符集</string>
    <string>方正宋体S-超大字符集(SIP)</string>
      <!-- Please install 方正宋体S-超大字符集(SIP) first -->
    <string>方正小标宋_GBK</string>
    <string>方正楷体_GBK</string>
    <string>方正细黑一_GBK</string>
    <string>方正行楷_GBK</string>
    <string>方正超粗黑_GBK</string>
    <string>方正隶书_GBK</string>
    <string>方正魏碑_GBK</string>
    <string>方正黑体_GBK</string>
  </edit>
</match>
<match>
  <test name="family"><string>serif</string></test>
  <edit name="family" mode="prepend" binding="strong">
    <string>文泉驿微米黑</string>
      <!-- Please install 文泉驿微米黑 first -->
    <string>文泉驿等宽微米黑</string>
    <string>DejaVu Sans</string>
    <string>DejaVu Serif</string>
    <string>WenQuanYi Bitmap Song</string>
      <!-- Please install WenQuanYi Bitmap Song first -->
    <string>AR PL UMing CN</string>
      <!-- Please install AR PL UMing CN first -->
    <string>AR PL SungtiL GB</string>
      <!-- Please install AR PL SungtiL GB first -->
    <string>WenQuanYi Zen Hei Sharp</string>
      <!-- Please install WenQuanYi Zen Hei Sharp first -->
    <string>AR PL UMing TW</string>
      <!-- Please install AR PL UMing TW first -->
    <string>Liberation Serif</string>
      <!-- Please install Liberation Serif first -->
    <string>Bitstream Charter</string>
      <!-- Please install Bitstream Charter first -->
    <string>Droid Serif</string>
      <!-- Please install Droid Serif first -->
    <string>Cantarell</string>
      <!-- Please install Cantarell first -->
    <string>DejaVu Sans Condensed</string>
    <string>DejaVu Sans Light</string>
    <string>DejaVu Sans Mono</string>
    <string>DejaVu Serif</string>
    <string>DejaVu Serif Condensed</string>
    <string>方正书宋_GBK</string>
    <string>方正仿宋_GBK</string>
    <string>方正姚体_GBK</string>
    <string>方正宋体S-超大字符集</string>
    <string>方正宋体S-超大字符集(SIP)</string>
      <!-- Please install 方正宋体S-超大字符集(SIP) first -->
    <string>方正小标宋_GBK</string>
    <string>方正楷体_GBK</string>
    <string>方正细黑一_GBK</string>
    <string>方正行楷_GBK</string>
    <string>方正超粗黑_GBK</string>
    <string>方正隶书_GBK</string>
    <string>方正魏碑_GBK</string>
    <string>方正黑体_GBK</string>
  </edit>
</match>
<match>
  <test name="family"><string>monospace</string></test>
  <edit name="family" mode="prepend" binding="strong">
    <string>文泉驿微米黑</string>
      <!-- Please install 文泉驿微米黑 first -->
    <string>文泉驿等宽微米黑</string>
    <string>DejaVu Sans</string>
    <string>WenQuanYi Zen Hei Mono</string>
      <!-- Please install WenQuanYi Zen Hei Mono first -->
    <string>WenQuanYi Micro Hei Mono</string>
    <string>DejaVu Sans Mono</string>
    <string>Droid Sans Mono</string>
      <!-- Please install Droid Sans Mono first -->
    <string>WenQuanYi Zen Hei Sharp</string>
      <!-- Please install WenQuanYi Zen Hei Sharp first -->
    <string>Liberation Sans Mono</string>
      <!-- Please install Liberation Sans Mono first -->
    <string>AR PL UMing TW</string>
      <!-- Please install AR PL UMing TW first -->
    <string>Cantarell</string>
      <!-- Please install Cantarell first -->
    <string>DejaVu Sans Condensed</string>
    <string>DejaVu Sans Light</string>
    <string>DejaVu Sans Mono</string>
    <string>DejaVu Serif</string>
    <string>DejaVu Serif Condensed</string>
    <string>方正书宋_GBK</string>
    <string>方正仿宋_GBK</string>
    <string>方正姚体_GBK</string>
    <string>方正宋体S-超大字符集</string>
    <string>方正宋体S-超大字符集(SIP)</string>
      <!-- Please install 方正宋体S-超大字符集(SIP) first -->
    <string>方正小标宋_GBK</string>
    <string>方正楷体_GBK</string>
    <string>方正细黑一_GBK</string>
    <string>方正行楷_GBK</string>
    <string>方正超粗黑_GBK</string>
    <string>方正隶书_GBK</string>
    <string>方正魏碑_GBK</string>
    <string>方正黑体_GBK</string>
  </edit>
</match>
</fontconfig>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170

Ubuntu下apache2的配置记录

自从 2012 年四月买 VPS...到现在已经算是一年多了吧.在此感谢琴对我的帮助和指导.没有琴的指导我也不会折腾和配置 VPS. 期间一点一点的成长都离不开大家的帮助.不过对琴的过度依赖,使我一度成为伸手党...真是十分抱歉 QAQ 现在写一篇日志记录下 apache2 的配置方法也可以留着自己以后进行参考.

# 安装 apache 套装

首先安装 lampsudo apt-get install lamp-server^PHP 开发和服务器运行环境首选 LAMP 组合,即 Linux+Apache+Mysql+Php/Perl/Python,能最优化服务器性能

# 开启相关模块

启用 mod_rewrite 模块

sudo a2enmod rewrite
1

启用 mod_proxy 模块

sudo a2enmod proxy
sudo a2enmod proxy_http
1
2

启用 SSL 模块

sudo a2enmod ssl
1

a2xx 系列的命令共有 a2dismod、a2enmod、a2dissite、a2ensite,作用分别是禁用模块、启用模块、停用站点、启用站点这些命令简单得连--help 选项都没有,只能运行看提示。其作用也很简单,就是在/etc/apache2/mods-enabled 和/etc/apache2/sites-enabled 里面建立或删除相对应的 x-available 目录里面的模块的链接。

# 具体相关配置

服务器资源一般很高贵,大家都会挂很多独立站点的.apache2 默认存放网站的目录是 /var/www 配置文件储存在 /etc/apache2 主配置文件在 apache2.conf 其中这个配置文件包含了 sites-enabled 目录 这个目录是主要储存配置文件的地方 配置文件以 000-default 000-default-ssl 这种命名方式进行命名. 这两个文件是对 http 和 https 进行默认配置.下面我们来看看这两个默认配置 vim 000-default

<VirtualHost *:80>
ServerAdmin acgotaku311@email.me
    ServerName _default_
DocumentRoot /var/www/default
<Directory />
  Options FollowSymLinks
  AllowOverride None
</Directory>
<Directory /var/www/default>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride None
  Order allow,deny
  allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
  AllowOverride None
  Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
  Order allow,deny
  Allow from all
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

</VirtualHost>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

第一行指定的是服务使用的端口. 第二行 ServerAdmin 写的是服务器管理员的邮箱. 第三行 ServerName 写的是服务器的名字 _default_ 代表默认使用这个, 即服务器名字找不到对应的配置文件的时候使用此配置文件. 第四行 DocumentRoot 写的是网站的根目录,即输入网址映射到服务器具体的哪个站点. Directory 子节点是对具体目录进行配置 我们主要是对网站根目录进行权限的配置. 其中主要说明的是 AllowOverride 选项 AllowOverride 控制那些被放置在 .htaccess 文件中的指令. 其余的配置基本不需要关心, vim 000-default-ssl

<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin acgotaku311@email.me
    ServerName  _default_
DocumentRoot /var/www/default
<Directory />
  Options FollowSymLinks
  AllowOverride None
</Directory>
<Directory /var/www/default>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride All
  Order allow,deny
  allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
  AllowOverride None
  Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
  Order allow,deny
  Allow from all
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
  Options Indexes MultiViews FollowSymLinks
  AllowOverride None
  Order deny,allow
  Deny from all
  Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

#   SSL Engine Switch:
#   Enable/Disable SSL for this virtual host.
SSLEngine on

SSLCertificateFile    /etc/apache2/ssl/ssl.crt
SSLCertificateKeyFile /etc/apache2/ssl/ssl.key


<FilesMatch "\.(cgi|shtml|phtml|php)$">
  SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
  SSLOptions +StdEnvVars
</Directory>

BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

</VirtualHost>
</IfModule>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60

SSL 模块就是多了一个证书的设置, 其余的基本不变.

其它站点基本就是拷贝默认的配置文件修改 ServerName 和 DocumentRoot 即可.

# 关于 SSL 证书

生成 SSl 证书命令

openssl genrsa -des3 -out ssl.key 1024
1

然后他会要求你输入这个 key 文件的密码。不推荐输入。 但是生成时候必须输入密码。你可以输入后 再删掉。

mv ssl.key xxx.key
openssl rsa -in xxx.key -out ssl.key
rm xxx.key
1
2
3

然后根据这个 key 文件生成证书请求文件openssl req -new -key ssl.key -out ssl.csr以上命令生成时候要填很多东西 一个个看着写吧(可以随便,毕竟这是自己生成的证书)最后根据这 2 个文件生成 crt 证书文件

openssl x509 -req -days 365 -in ssl.csr -signkey ssl.key -out ssl.crt
1

这里 365 是证书有效期 推荐 3650 哈哈。这个大家随意。最后使用到的文件是 key 和 crt 文件。

这里生成的证书是不受信任的...我们可以在Let's Encrypt (opens new window)上申请免费的证书.