最近把家里闲置的一台笔记本装了群晖,并且利用上次再良心云买的域名,添加了外网访问。此博文为记。

安装群晖

总体来说用笔记本来安装黑群晖还是比较简单的。具体参考张大妈上的这篇文章

需要注意的是,本来笔记本是ssd和机械硬盘组的双硬盘,安装好群晖之后,发现只能识别到ssd,无法识别机械硬盘。想着ssd用来做硬盘有点浪费,所以我将笔记本的ssd拆下来,又重新安装了一遍,这才识别了机械硬盘。

阅读全文 »

终于受不了Github的龟速,速度慢就罢了,在联通的宽带下还经常timeout。虽然腾讯云的带宽也就1Mbps,好歹也能跑满,速度稳定在120多kb。于是在周末把博客完全迁移到了腾讯云上。

阅读全文 »

Update2:

2018/5/15 今天上午收到工信部的邮件,审核已经通过。但是还需要再公安系统中备案。。。晚上又提交了一大推信息,等审核吧。

Update:

直接使用https协议是可以访问的。估计腾讯云只拦截未备案的http站点,现在问题就是http没办法自动跳转https。等居住证办下来再说把。

今天打开博客,发现无法访问了,腾讯云提示需要网站备案。打开备案网址,每个省的备案规则还不一样,江苏省备案要求非省户籍必须提供居住证明。证明链如下:

网站备案 -> 居住证明 -> 房屋租赁备案证明 -> 房产证

好吧,看来居住证明是非办理不可了。

现在域名无法解析,暂时将nginx监听端口修改为8080,只能通过ip访问。

centos简单折腾记录。

新建用户

  1. 使用root用户登录到server端。
  2. 新建用户账号:adduser robert
  3. 设置密码: passwd robert

增加用户到sudoer中

root用户拥有系统的最高权限,但是为了系统的安全性,一般不会直接使用root用户。相反我们会使用sudo命令来暂时提高当前用户的权限。下一步我们将新建的用户robert加入到sudoer中。在centos中,在wheel用户组的用户具有sudo权限。

1
usermod -aG wheel robert

注:在debian系统中sudoer所在的用户组是sudo。usermod -aG sudo robert

测试是否成功。

1
2
su robert
sudo ls -al /root

如果还是提示用户不再sudoer中。那么还需要修改/etc/sudoers文件。sudo命令是由该文件来配置哪个用户及用户组可以执行。注意该文件不要随便修改,因为错误的语法错误可能会导致用户无法通过sudo来提升权限。需要通过visudo命令来修改。visudo命令默认使用vi来打开文件,但是在保存文件的时候会检查配置是否有语法错误。

1
visudo -f /etc/sudoers

找到wheel(可以使用vi中进行搜索字符)。如下面所示,去掉前面的#号,取消该行注释。%wheel表示的是wheel 用户组。参考链接

1
2
3
...
%wheel ALL=(ALL) ALL
...

然后再测试是否切换到创建的用户,是否能够执行sudo命令。

修改SSH默认端口

ssh是一个安全的加密协议,用于主机之间的通信。为了加强系统的安全性,修改默认的ssh的22端口。

  1. 修改ssh_config文件中的默认端口号

    1
    vim /etc/ssh/sshd_config

    找到#Port 22这一行,去掉#,取消注释,修改为你想要该的端口号,如10086。

  2. 按需修改修改防火墙规则和更新selinux规则。

    centos7执行:

    1
    2
    firewall-cmd --add-port 10086
    firewall-cmd --add-port 2345/tcp --permanent

    centos6执行:

    1
    iptables -I INPUT -p tcp --dport 10086 -j ACCEPT

    同时按需修改selinux:

    1
    semanage port -a -t ssh_port_t -p tcp 10086
  3. 重启ssh服务:

    1
    systemctl restart sshd.service

    注:在centos 6以下中可能无法使用systemctl,需使用service ssh restart.

  4. 测试ssh链接:

    1
    ssh [email protected]_address -p 10086

配置公钥登录

在windows上一般使用putty或xshell来作为ssh客户端。这里以xshell为例。在xshell中Tools->User key Manager->Generate生成公钥/私钥对。将私钥保存好,同时将公钥复制到剪贴板。

使用xshell ssh连接到远程主机,在当前用户HOME目录下执行如下命令:

1
2
3
cd ~
mkdir .ssh && chmod 700 .ssh
touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys

ssh服务默认使用用户.ssh目录下的authorized_keys中的公钥来进行验证。将上一部复制的公钥复制到authorized_keys文件中。

如果想配置root也使用公钥登录,需要在root目录下也建立.ssh文件夹和authorized_keys文件。注意,需要更改文件夹和文件权限!

禁止root远程密码登录

修改ssd的配置文件

1
sudo vim /etc/ssh/sshd_config

#PermitRootLogin yes修改为PermitRootLogin without-password。注意是修改为without-password,如果直接修改为no,则root公钥也不能登录了。

参考链接

前言

beyond compare对于程序员来说,可谓是一个不可多得的文件比较工具,试用过winMerge以及一些自带的diff工具之后,还是发现beyond compare界面最为友好,功能也比其他工具强大。

最近有一个需求是能否在每次release之后,可以比较方便的产生各个版本的升级patch包。持续集成的工具(类似jenkins,Travis CI)我没有了解过,不知道是否能有这个功能。但是仅仅对于这个小需求来说,利用beyond compare工具就可以做到。

阅读全文 »

上篇文章简单的摘录了TCP建立连接和释放连接的过程。TCP报头中的标志位于操控TCP的状态机。下面简单说说TCP报头中的标志位。

阅读全文 »

定义

Socket通信是计算机网络中一种重要的数据交换的方式。维基百科对socket定义如下:

在操作系统中,通常会为应用程序提供一组应用程序接口(API),称为套接字接口(英语:socket API)。应用程序可以通过套接字接口,来使用网络套接字,以进行数据交换。最早的套接字接口来自于4.2 BSD,因此现代常见的套接字接口大多源自Berkeley套接字(Berkeley sockets)标准。在套接字接口中,以IP地址通信端口组成套接字地址(socket address)。远程的套接字地址,以及本地的套接字地址完成连接后,再加上使用的协议(protocol),这个五元组(five-element tuple),作为套接字对(socket pairs),之后就可以彼此交换数据。例如,在同一台计算机上,TCP协议与UDP协议可以同时使用相同的port而互不干扰。 操作系统根据套接字地址,可以决定应该将数据送达特定的进程或线程。

阅读全文 »