近日实验室一合作项目需要将校内的某web站点发现到公网,但是校内的地址都是10.0.0.0/8的私网地址,对外不可见。如果要向校方申请公网ip未免太过麻烦,想到自己有一VPS,拿来做端口转发应该是满足这个需求的。

  ssh的端口转发有三种,本地、远程和动态,动态转发应该是更为大家熟悉的,因为它可以用来做socks5代理。但是HTTP服务明显不能用socks5的形式来发布,所以这里我们可以用local/remote端口转发。   

场景与效果

使内网ip为10.x.x.x的主机的80服务对外可用,拥有一台ip为104.x.x.x的公网VPS(虚拟服务器)。
设置完成后,访问http://104.x.x.x:8080将等同于访问10.x.x.x的80端口。

Read More

  Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Queue接 口。

1
2
3
4
5
6
7
8
add 增加一个元索 如果队列已满,则抛出一个IIIegaISlabEepeplian异常
remove 移除并返回队列头部的元素 如果队列为空,则抛出一个NoSuchElementException异常
element 返回队列头部的元素 如果队列为空,则抛出一个NoSuchElementException异常
offer 添加一个元素并返回true 如果队列已满,则返回false
poll 移除并返问队列头部的元素 如果队列为空,则返回null
peek 返回队列头部的元素 如果队列为空,则返回null
put 添加一个元素 如果队列满,则阻塞
take 移除并返回队列头部的元素 如果队列为空,则阻塞

  阻塞队列的操作可以根据它们的响应方式分为以下三类:aad、removee和element操作在你试图为一个已满的队列增加元素或从空队列取得元素时 抛出异常。当然,在多线程程序中,队列在任何时间都可能变成满的或空的,所以你可能想使用**offer、poll、peek方法。这些方法在无法完成任务时 只是给出一个出错示而不会抛出异常。

  在多个主机间共享文件,Samba是一个不错的选择,速度快而且稳定,不同系统之间都可以访问,包括Android,用它架设一个简单媒体服务器是不错的选择。之前在Ubuntu开启共享是十分简单地,文件管理里自带设置,在其它CentOS6的VPS上我也设置过,并不复杂,但是在CentOS7上同样设置之后,虽然能查到到共享目录,但是无法打开,显示没有权限。
  

  几经折腾之后,怀疑是SELinux在作祟,试着关闭SELinux之后,服务正常了。但粗暴地关闭显然是不够优雅的,我们还是设置SELinux与之共存吧.

SELinux

  本人对SELinux也不甚了解,作为一个桌面Linux用户,有iptables就绰绰有余了(事实上规则长期全空),但是CentOS作为一个以稳定安全著称的发行版,SELinux是默认开启的(前面提到的VPS默认关闭了,能出于易用性的考虑)。简单浏览了一下,SELinux竟然出自大名鼎鼎(臭名昭著)的美国NSA之手,意为安全增强Linux,通过定义策略来控制哪些域可以访问哪些上下文。

Read More

密钥

  公私钥为非对称加密,它们都可以解密用对方加密的文件,但无法还原对方密钥本身。所以公钥可以随意散发,妥善保管私钥即可。

公钥加密报文(防窃听)

  用公钥来给报文加密,只有私钥拥有者才能解密,这样既然报文在传输过程中被人窃听,也不会泄露内容。

私钥加密摘要|数字签名(防抵赖/篡改)

  所谓抵赖也就是否认曾经发送过某内容,比如要发借条,就可用数字签名。

Read More

之前写过一篇关于校园网绕过计费访问外网的小文,虽然罗列了1234…各种方法,但是言之不详。现在就来详细介绍其中最简单实用不需要任何额外资源的方法:IPv6直接上网,这种方法既不需要到国外租VPS,也不需要下载什么软件,直接在电脑上简单设置,一步搞定。
废话不多说,先来效果图:这是我线看1080P的视频时的下行网速,请直接看右下角,10MB/s的速度,全是IPv6的连接,也就意味着不计流量
download speed

Read More

重看APUE

最近在折腾一些东西的时候,发现自己的操作系统知识很可怜,于是打算抽点时间学习APUE。其实与其说是重看,和第一次看也没有太多区别,之前上过一次选修但是很可惜当时没有心境沉下来上课,都做项目去了。现在我很想从头到尾认真的看一遍,虽然目前是做到了,但是以后可能时间吃紧,只能挑着看了。
最好的学习方法当然是看与写结合,所以我第一个例程,我看懂原理之后就会尝试自己“写”一遍,实际情况看比你”自以为看懂”地浏览过去效果要好。

Read More

众所周知windows安装会覆盖Grub信息,导致Linux无法启动,修复的方法大概有两种,一种是继续使用windows的引导,加上Linux的Entry,另一种则是重新安装grub。

个人来说偏好第二种,windows的BCD比较简陋,功能也很简单,而grub则要漂亮和强大一些。另外就是LInux的liveCD也使得grub的安装非常方便,推荐使用ubuntu的Desktop版CD。

整体来说,重装windows后grub的修复有以下几步。

Read More

此文由来

由于在ubuntu下误将win8分区格式化,所以重新安装了win8,而大家都知道win8安装是会覆盖掉grub的,所以就无法进入Linux了,必须要用Linux的LiveCD来修改Grub。

Linux下制作启动U盘

在linux下制作ubuntu的启动盘再简单不过

1
cat ubuntu.iso > /dev/sdx

只需要将iso文件原样刻录进u盘的即可,无需写入引导信息之类的额外操作。

Read More

此文由来

今天在Linux下格式化一只32G的U盘时,误将内置的32G SSD盘格了,那正是我win8的安装盘!!!

用到的工具

fdisk, mkfs.ntfs, mount, ms-sys
当然你还得有一个win8的安装镜像文件(ISO)。
其中关键道具就是ms-sys,它不是系统自带的工具,需要自己安装,但是安装非常简单,就是下载源码make && sudo make install,所以我也不细说了。只说一下大致流程。

Read More