Ubuntu 12.04/14.04/18.04使用squid架设Http正向代理服务器

配置普通HTTP正向代理

安装

配置squid3

搜索此句

修改为

搜索此句(squid默认允许访问本地(localhost)服务,但建议禁止

修改为

启动/重启squid3

注意: squidhttp默认代理端口为3128

配置HTTPS正向代理(单向认证)

由于ubuntu 12.04/14.04/18.04默认安装的squid版本是不支持SSL的,因此只能重新编译支持SSL.

1.安装编译依赖

2.修改默认的编译选项,增加SSL支持
ubuntu 12.04

DEB_CONFIGURE_EXTRA_FLAGS字段中增加--enable-ssl

ubuntu 14.04/18.04

对于Ubuntu 14.04来说,除了要在DEB_CONFIGURE_EXTRA_FLAGS字段中增加--enable-ssl外,由于squid3-3.3.8默认去掉了对于NCSA的支持,而我们下面认证密码的配置是基于NCSA算法的,因此需要在DEB_CONFIGURE_EXTRA_FLAGS--enable-auth-basic字段中增加对于NCSA的支持,否则无法使用NCSA算法进行账号认证,修改后的样子如下:

注意,这样修改后squid3-3.3.8版本编译出来的在/usr/lib/squid3/下的ncsa_auth被重命名成了basic_ncsa_auth,因此配置文件中制定认证应用的时候要修改一下。

对于Ubuntu 18.04来说,这个参数不需要调整,默认支持NCSA

注意,如果需要禁用ipv6的支持,则增加--disable-ipv6选项,这个目前是唯一的可以彻底禁用ipv6代理访问的方式。这个需求的原因是由于配置问题,某些网站的ipv6地址存在,但是无法正常访问

3.配置编译
ubuntu 12.04

ubuntu 14.04

ubuntu 18.04

4.安装(编译后的文件存在在上层的squid_src目录下面)
ubuntu 12.04

ubuntu 14.04

ubuntu 18.04

5.验证安装后的版本是否支持SSL

如果看到enable-ssl输出,则说明编译成功。

6.生成自签名证书

7.移动服务器证书到squid3配置目录

8.配置squit3

搜索https_port,如果搜索到,则在搜索到的位置增加,搜索不到则在文件的最后增加

9.验证配置文件是否配置正确

10.启动/重启squid

11.安装stunnel,配置安装目录下的stunnel.conf,把原来的内容都删掉,粘贴下面的内容

12.设置浏览器代理服务器地址

7442F5AA-EF60-49C8-B7BB-97D750C72231

13.重新启动stunnel

注意,如果只支持Https协议,可以注释掉原来的 

配置Squid3用户名密码认证

1. 安装htpasswd(如果装了apache就省掉这一步)
(这个是用来产生密码的)

也可以

2.生成密码文件

会让你输入user1的密码
3.改一下权限,确保squid能够读出密码文件

4.修改squid.conf,增加或修改成下面的样子

对于ubuntu 12.04版本上编译出来的的Squid3-3.1.19,执行如下配置:

对于ubuntu 14.04版本上编译出来的的Squid3-3.3.8,由于验证程序的名字被修改成了basic_ncsa_auth,因此执行如下配置:

简单的修改可以在VIM中查询 "auth_param basic program /usr/lib/squid/ncsa_auth" 找到后修改一下即可.
然后搜索 "http_access allow all" 找到后替换为 "http_access allow ncsa_users"
在"http_access allow all" 上面就是acl控制部分,直接增加"acl ncsa_users proxy_auth REQUIRED"
如果配置文件是从Squid3-3.1.19升级到Squid3-3.3.8版本的,那么根据如下两个链接的描述:
http://wiki.squid-cache.org/SquidFaq/ConfiguringSquid
https://forums.gentoo.org/viewtopic-t-952948-start-0.html

这两个链接上的信息,从Squid3-3.2版本开始,原来配置文件中的acl控制信息已经不需要再从配置文件中读取了,这部分的功能已经集成进入应用内部了。
因此需要注释掉下面这几句话,否则无法正常启动Squid3.

5.重启squid3

限制单个用户的下载速度

squid3在默认编译的时候,已经包含了--enable-delay-pools选项,因此已经默认支持限速了,我们只需要设置限速配置就可以了。

在文件最后增加如下配置:

参数的具体解释请在squid.conf中搜索delay-pools查看。

重启squid3

参考链接


删除目录下所有的 .svn .git 隐藏子目录

使用SVN 1.6 之前版本 checkout出来的代码,在本地每个文件夹下都有个 .svn ,可利用这个命令来删除

Linux

Windows(需要在批处理文件中执行)

对于Git的目录也可以如此操作:

Linux

Windows(需要在批处理文件中执行)

Ubuntu 13.10 运行VirtualBox虚拟机编译出现错误提示运行"/etc/init.d/vboxdrv setup"的问题

运行虚拟机提示:

之后提示:

在终端下运行:

提示信息

提示有错误,查看了一下错误日志

内容如下

根据提示应该是没有找到对应的源文件,查看了一下系统版本号:

在进入/usr/src里发现果然没有对应的版本号头文件。

解决方法:

Linux SVN提交时强制写日志

SVN默认可以不写注释提交,有时候可能忘记写注释,有的人也没有写注释的习惯,导致翻看history的时候都不知道做了哪些更改,可以依照以下步骤修改SVN配置,强制提交SVN前写注释

步骤:

1.进入svn/code/hooks目录,在svn版本库的hooks文件夹下面,复制模版pre-commit.tmpl

2.编辑pre-commit文件:

上面这几行注释掉(前面加#符号),在此位置添加如下几行:

ubuntu支持exfat分区

对于Ubuntu 14.04.5之前的版本

  1. Add the repository:
  2. Update the package list:
  3. Install the exfat package:

对于Ubuntu 14.04.5以及之后的版本

Ubuntu 13.10 aapt: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

升级到Ubuntu 13.10 之后 Eclipse 中的Android adb 会报告  Android/android-sdk-linux/build-tools/19.0.0/aapt: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

原因在于,在13.10 版本中,ia32_libs 被废弃了导致没有32位的lib库。

解决方法

Linux/macOS下文本比较工具Meld

Meld支持两方/三方文件/目录比较,实时编辑,CVS管理,适合比较大型项目移植。

 

官方地址:

Ubuntu 16.04系统上安装执行如下命令

macOS 系统上安装执行如下命令

参考链接


Meld:文件及目录对比工具

ubuntu下更改用户名

1.进入单用户模式:

(1)开机到grub时,用上下键移到第二行的恢复模式,按e(注意不是回车)

即Ubuntu,With Linux 3.2.0-23-generic(recovery mode)

(2) 把ro recovery nomodeset 改成rw single init=/bin/bash

然后按ctrl+x 或者F10   就可以进入 单用户模式

2.默认会进入只读模式栋recovery,需要重新挂载:

3.

用usermod命令来修改用户帐户相关信息,-l指定新的登录名称,-d指定新的主目录,如果同时指定-m选项则移动原来用户主目录的内容到新的用户住目录,最后指定原来的登录用户名。

groupmod命令用来修改组相关信息,-n用来指定新的组名,用原来的组名作为参数。这里修改的是与用户默认同名的组。

chfn命令来修改真实的用户名称和其他相关信息,-f指定新的用户全称,需要修改全称的用户名作为参数。

另外,刚刚安装的ubuntu是没有root密码的。在terminal中不能执行su。初始化密码的方式:

根据提示填写密码。

Ubuntu下使用ZTE ac2736无线上网

ZTE ac2736的无线上网卡,Window下的使用是相当的简单,Ubuntu下还是需要稍作设置,这里就简单介绍一下ubuntu下的设置方式。

首先说明一下环境,Ubuntu 10.04,所有已装软件已升级到最新版本(请先安装usb-modeswitch和usb-modeswitch-data)。

步骤1:插上ZTE ac2736后使用lsusb命令查看状态

正常的话结果中应该有如下信息:

其中0×19d2是vendor的代号,0xfff1是product的代号。

此外,此时/dev下应该也出现了ttyUSB[0-4]5个设备标示。

步骤2:设置连接拨号方式

查看右上角的NetworkManager,在移动宽带下会出现一个名为China telecom conn 1的连接项,www.linuxidc.com这时候直接连接是不行的,需要先右键点击NetworkManager,点选编辑连接,找到移动宽带->China telecom conn 1,选择编辑->移动宽带选项卡,可以看到编号中已经是#777,用户名和密码填入card后保存。

如果未出现China telecom conn 1的选项,可以重新插拔ac2736,或者编辑NetworkManager,手动添加一个移动宽带的连接项,第一步设备选择ZTE Incorporated ZTE CMDA Tech,第二步选择China,第三步提供商选China Telecom,应用后可以看到弹出的页面中编号为#777,同样将用户名和密码设置为card保存后即可,其他选项用默认的即可。

步骤3:连接网络

选择NetworkManager中的China telecom conn 1,稍等片刻就可以看到连接成功的提示了,此时ifconfig查看网络连接可发现: