向死而生,方得重生。

Search

2018-12-27

Debian/Ubuntu apt设置socks5代理


在 macOS 上,我通常采用export ALL_PROXY命令设置当前终端的代理,关掉终端后即失效,而且 Homebrew 也继承终端的代理,非常舒服。但是到了 Ubuntu 下,设置完终端代理后 curl 访问 myip.ipip.net 可以返回代理服务器的地址,但是 apt 安装软件的时候依旧是10KB/s的“高”速,查了一下,原来这样导入的代理对 apt 是无效的。

Google一下,发现大多数说法是要求在/etc/apt中建立conf配置文件,然后设置代理,可惜这里面只支持http代理而不支持socks代理,无奈之下只得另谋他路。

1、首先通过apt命令安装tsocks(建议先更换到国内源[例如TUNA]安装tsocks,否则速度将十分感人)

sudo apt install tsocks

2、配置Tsocks的配置文件,填写代理服务器的地址。

vim /etc/tsocks.conf

着重关注与这三行:

server = 127.0.0.1    # socks服务器的IP
server_type = 5       # socks服务版本
server_port = 1080    # socks服务使用的端口

3、使用Tsocks执行命令

很简单,就是在命令前面加上 tsocks 就可以了, tsocks 会使用 exec 来运行命令。

例如,进行apt源的更新,便可以使用 sudo tsocks apt update


参考:apt-get使用socks代理
地址:https://my.oschina.net/mzzyk/blog/693640

2018-12-12

OpenWRT 开启 HTTPS



前几日,某小朋友告诉我,OpenWRT 内的 Luci 页面并不安全,仔细想想小朋友说的很有道理,毕竟密码通过明文的方式在线路里传输,虽然是局域网,但毕竟开放了WiFi,直接能被劫持到也是一件很危险的事情,所以后面给机器划分了VLAN,开启了HTTPS,下面给出设置HTTPS的方法。

软件创新实验室的路由器是斐讯K2(毕竟我们这么穷),固件我从OpenWRT官方下载的18.06.1(注:这个固件没有中文界面)。请注意,如果不是相同的固件,可能步骤和操作会略有差异!

1、安装luci-ssl包:opkg install luci-ssl

2、修改相应的配置文件 /etc/config/uhttpd,确保list listen_https '0.0.0.0:443'有效(建议通过#注释掉对80端口的监听)。

3、根据配置文件中证书文件的路径上传证书到相应目录。

默认证书文件是 /etc/uhttpd.crt
默认密钥文件是 /etc/uhttpd.key

4、使用 /etc/init.d/uhttpd restart 命令重启 uhttpd 即可生效。

2018-11-29

树莓派搭建 L2TP VPN 服务器


最近频繁的需要访问软件创新实验室的一些数字资源,而这些资源又不太适合直接暴露在校园网内。总得往实验室跑有些时候会感觉很烦,萌生了搭建一个VPN服务器的想法,最近找了一些资料,特地记录一下。

鉴于 L2TP VPN 在 Linux 系统下已经有了成熟的一键部署脚本,这里我们通过执行下面的代码从 github 上下载到本地生成vpnsetup.sh文件。

wget https://git.io/vpnsetup -O vpnsetup.sh

一键部署脚本来自https://github.com/hwdsl2/setup-ipsec-vpn项目,对原作者表示感谢。。


之后我们修改配置参数,填写用户名(YOUR_USERNAME)、密码(YOUR_PASSWORD)和预共享密钥(YOUR_IPSEC_PSK)。

可以执行vim vpnsetup.sh填写上面的参数。

然后执行sudo ./vpnsetup.sh运行上面的脚本。

稍后出现Enjoy,即可使用。

网络穿透方面,开启路由器防火墙的TCP1701端口和UPD500、4500的端口转发即可。

2018-11-28

crt/key 证书如何转换成 pem 文件


不管是哪个证书颁发机构(CA)发的凭证多半金钥档都都给“.crt/.key”格式的文件,像是“ca_bundle.crt”,“certificate.crt”和“.private.key”这种文件,但是在实际使用却会需要的是“.pem”档,那要怎么转换呢?其实可以直接使用OpenSSL这个软件和几行指令来达成。

以 Linux (Debian 系列) 为例,可以直接使用 apt-get 指令下载安装 OpenSSL,如果是其他系统可以参考官方网站的说明。

sudo apt-get install openssl

openssl rsa -in private.key -text > private.pem
openssl x509 -inform PEM -in certificate.crt > certificate.pem
openssl x509 -inform PEM -in ca_bundle.crt > ca_bundle.pem

以前述所提到的「ca_bundle.crt」、「 certificate.crt」和「.private.key」三个档案为例,就可以用上方的指令完成转档,其实同副档名的转档指令都相同,所以两个「.crt」的指令其实是重复的,也要记得套换成自己的档案名称。


来自:JustHODL
原文地址:https://justhodl.blogspot.com/2018/04/tls-ssl-crt-key-to-pem-openssl.html

2018-11-05

Raspberry Pi 更新为清华大学软件源



cd ~
(
cat << EOF
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
EOF
) >sources.list

(
cat << EOF
deb http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
deb-src http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
EOF
) >raspi.list

cd /etc/apt
sudo mv sources.list sources.list.back
sudo mv ~/sources.list ./
cd sources.list.d
sudo mv raspi.list ../raspi.list.back
sudo mv ~/raspi.list ./
感谢水清源先生提供上面的代码。

2018-08-19

Finder 个人文件夹改回中文名称


之前机器的语言一直设置成为English,所以没有在乎个人文件夹的情况,今天切换回简体中文后发现文稿(Documents)、下载(Downloads)和桌面(Desktop)都是英文名显示,Google了一下得到解决方案:

打开终端,根据需要设定的文件夹输入不同的命令:


    1、下载文件夹:touch ~/downloads/.localized
    2、桌面文件夹:touch ~/Desktop/.localized
    3、文稿文件夹:touch ~/Documents/.localized


正常情况下不用重启,执行完打开Finder立即生效。

2018-07-12

为git设置代理服务器


由于众所周知的原因,GitHub在国内的速度非常感人。在项目的上传下载过程中十几KiB甚至几KiB的速度令人非常感动。所以为其设置代理服务器变成了不可获取的一步。

设置方法一、命令行执行

设置代理:

  • git config --global https.proxy http://127.0.0.1:1080

  • git config --global https.proxy https://127.0.0.1:1080


取消代理

  • git config --global --unset http.proxy

  • git config --global --unset https.proxy


设置方法二、更改.gitconfig文件

在当前用户目录的.gitconfig文件,添加下面的内容以设置代理服务器:
[https]
proxy = socks5://127.0.0.1:1080
[http]
proxy = socks5://127.0.0.1:1080

删除上面部分内容即可取消代理服务器。

2018-07-09

侯捷:满汉全席之外


Stanley B. Lippman 所著的C++ Primer 雄踞书坛历久不衰,堪称C++最佳教科书。但是走过十个年头之后,继1237 页的C++ Primer 第3 版,Lippman 又返璞归真地写了这本276 页的Essential C++。有了满汉全席,为何还眷顾清粥小菜?完成了伟大的巨著,何必回头再写这么一本轻薄短小的初学者用书呢?

所有知道Lippman 和C++ Primer 的人,脸上都浮现相同的问号。

轻薄短小并不是判断适合初学与否的依据。Lippman 写过Inside the C++Object Model,280 页小开本,崩掉多少C++老手的牙。本书之所以号称适合初学者,不在于轻薄短小,在于素材选择与组织安排。

关于Lippman 重作冯妇的故事,他自己在前言中有详细的介绍。他的转折,他的选择,他的职责,乃至于这本书的纲要和组织,前言中都有详细的交待。这方面我不必再置一词。

身为C++ Primer,3rd Edition 的译者,以及多本进阶书籍的作者,我必须努力说服自己,才能心甘情愿地将精力与时间用来重复过去的足迹。然而,如果连Lippman 都愿意为初学者再铺一条红地毯,我也愿意为初学者停留一下我的脚步。

我是一名信息教育者,写译书籍,培训人员,在大学开课……。我真正第一线面对大量学习者。借此机会我要表达的是,所谓“初学者”实在是个过于笼统的名词与分类(呃,谈得上分类吗)。一般所谓“初学者”,多半想象是大一新生程度。其实C++语言存在各种“初学者”,有13 岁的,有31 岁的(当然也有41 岁的)。只要是第一次接触这个语言,就是这个语言的初学者,他可能才初次接触计算机,可能浸淫Pascal/C 语言十年之久,也可能已有Smalltalk/Java 三年经验。有人连计算机基本概念都没有,有人已经是经验丰富的软件工程师。这些人面对C++,学习速度、教材需求、各人领悟,相同吗?

大不同矣!

每个人都以自己的方式来诠释“初学者”这个字眼,并不经意地反映出自己的足迹。初学者有很多很多种,“初学者”一词却无法反映他们的真实状态。

固然,轻薄短小的书籍乍见之下让所有读者心情轻松,但如果舍弃太多应该深入的地方不谈,也难免令人行止失据,进退两难。这本小书可以是你的起点,但绝不能够是你的终站。

作为一本优秀教科书,轻薄短小不是重点,素材选择与组织安排,表达的精准与阅读的顺畅,才是重点。

作为一个好的学习者,背景不是重点,重要的是,你是否具备正确的学习态度。起步固然可从轻松小品开始,但如果碰上大部头巨著就退避三舍逃之夭夭,面对任何技术只求快餐速成,学编程语言却从来不编写程序,那就绝对没有成为高手乃至专家的一天。

有些人的学习,自练一身铜筋铁骨,可以在热带丛林中披荆斩棘,在莽莽草原中追奔逐北。有些人的学习,既未习惯大部头书,也未习惯严谨格调,更未习惯自修勤学,是温室里的一朵花,没有自立自强的本钱。

章节的安排,篇幅的份量,索引的保留,习题加解答,以及网上的服务,都使这本小书成为自修妙品、C++专业课程的适当教材。诚挚希望《EssentialC++中文版》的完成,帮助更多人获得C++的学习乐趣——噢,是的,OOP(面向对象编程)可以带给你很多乐趣,我不骗你。

侯捷


2012/09/22




  • 本文节选自《Essential C++中文版》一书

  • [美] Stanley B.Lippman 著

  • 侯捷 译

  • 电子工业出版社出版

2018-05-07

有感于《腾讯没有梦想》


读完了《腾讯没有梦想》,说实话百感交集。

其核心观点莫过于腾讯正在丧失产品能力和创业精神,变得功利和短视,其强项不再是产品业务,而是投资财技。公司也在逐渐变成一家投资公司。

Pony现在更多的是希望通过经济建立和联系起整个腾讯系,而不是想阿里一样的收购和完全控制。这样一定程度上收获了人心,壮大了腾讯系。但不可忽视的是,腾讯系虽然越来越壮大,且腾讯现在仍有绝对的话语权,但随时间流逝,如果腾讯不能继续在创新领域保持高产,其影响力终究会逐渐下降。

今天张荣华教授给我们上课,说到资本主义逐利性决定他们经济发展到一定程度就换选择利润更高的资本游戏而非实业,从而实业逐渐受冷落而萧条。而实业切实支持和支撑着国民经济的发展,资本游戏虽高利润却终究只是数字游戏,一旦资本游戏超过实业发展水平,经济危机的爆发就是板上钉钉了。

国家如此,企业也是。腾讯现在的策略造就了其现在的顶峰,同时也为其未来埋下了巨大的隐患。只是,腾讯应该庆幸,只要从现在开始,仍旧能保持高强度的创新产出,其仍旧能维持辉煌甚至突破现在的自己。但止步不前,仅仅满足于资本投资游戏带来的繁荣和乐趣,真的是一剂慢性毒药。

2018-04-09

2018-03-29

力不从心的现在和迷茫的未来


这学期的力不从心感比上学期还深,
我也不知道现在的自己是怎么了,
问遍了自己认识的长者们,
却依旧不知道自己想要的生活。

有人问我本科毕业后你要做什么?
就业,深造(推免/考研/出国)?
我不知道,非常迷茫。

之前崔艺甜和我说自己迷茫的时候,
我告诉她迷茫的时候就做好当下,
让将来的自己有更多选择的权利。
为什么发生在自己身上的时候依旧无法摆脱这种状态呢?
那种看透了一切却依旧过不好的感觉真的超糟糕。

除了学术和人生发展的迷茫,
我又一次感到在人际关系方面深深的无力感,
各种垃圾人在耳边大放厥词,
因为不美好的过往,我现在很能克制冲动,
但这并不意味着我是怂包,
我打算把某个傻逼好好晾一晾,
我相信冷战比动手伤害性更高。

这大概就是人生吧,
各种不快乐、不完美形成的并集。
我觉得自己应该更加全身心投入工作,
至少成绩不会背叛我。
即使前路迷茫,
现在的努力至少可以保证让你跨过断崖,
让未来的你在下一个十字街头做出喜欢的选择,
而不是坠入深渊,
眼睁睁的看着美好的未来渐行渐远。

2018-02-08

Raspberry3搭建Radius认证服务器思路


近期随着 WPA/WPA2 漏洞的爆出,WiFi安全成了很多人关注的焦点。加上家里新到了一台树莓派,便想搭建一个Radius 将无线网络认证从WPA2 Person 切换到 Web 认证。

基本的思路非常简单,树莓派工作后分别按照 LAMP 和 FreeRADIUS 和 daloRADIUS GUI 即可。鉴于树莓派性能相当有限,不推荐使用编译版的 LAMP 一键安装包,出分步骤安装 LAMP 和两款软件即可。

2018-01-22

软件工程的高等教育到底有什么用?


今天在知乎上看到问题“我国的高校计算机教育存在哪些问题?”下西陵鱼璃的答案(传送门),感触颇多。

答案原文:(截至发稿)


高校的教学目标是按把学生教成架构师、科研工作者来制定的。然而企业中根本没那么多架构师、科研岗的坑位给应届毕业生。这就是矛盾所在。

科研类算法岗位,靠本硕六年认真学还是能胜任的,但奈何坑位少。

架构师、高级工程师,根本不是大学四年/六年背背软件工程ppt就能搞定的。大学里课设跟企业级应用差别太大,即便大学写了很多项目学习效果也有限;所以没个三五年企业工作经验是担不起来架构师、高级工程师的。这时候就很尴尬,大学教的很多是些“屠龙之术”。

所以,很多学生为自身考虑,开始学习“搬砖技巧”,这些大学不教的东西就只能靠自学咯,不过好在效果似乎还不错,可以进入理想的大公司。但这些“搬砖技巧”,培训班也可以教呀,就有了所谓“培训班四个月就可以了,你大学学四年有什么用?”的论调。

看完很失望吧,大学学的这些有什么用呢?有用的,虽然现在还是搬砖小兵,但将来你也许会成为将军,成为统领,面临真正的“龙”,曾经的“屠龙之术”便到了发挥作用的时候了。然而,能够成为将军的总是少数人。



读罢,深深的感觉作者的水平之高。

反观当下,太多太多的身边人都不再重视计算机的核心和底层,不再重视数学基础(高数学了有什么用?),而选择停留在学几个应用搬砖,甚至会点应用反过头来嘲笑认真学专业课的人你学的东西落伍。殊不知,自己费了很长时间学会的那点不知原理的应用,在经历专业课训练且基础扎实的人身上就是几小时甚至几分钟的事情。

一时的搬砖训练确实有用,但是这些训练只能让你具有入门资格,对你的未来发展影响可以忽略不计。等到未来参加工作时,因基础不够夯实看不懂专业文献,死在T2升不到T3的时候,再回首,又有什么用?

给你成龙的机会,你却羡慕水中自由游动的鱼,当身边人飞龙在天时候,再回首?

高等教育从来都不过时,都不落伍。大学里教授的这些,都是将来可能成为你瓶颈的东西。虽然很多人的实力还达不到这个瓶颈,但这不代表这些东西没用。学习一些应用,尝试做出些东西没什么不好,但是太过注重这些而忽视原理,注定是买椟还珠的愚蠢做法。仅此,给热爱软件工程的小伙伴,给自己!