评论系统从Disqus迁移到Valine
如何方便的使用评论功能就是一件比较麻烦的事情,当然网上也有很多很好的解决方案,例如之前被很多人使用的Disqus,还有多说、网易云跟帖等。但是国内的网络环境下,评论成为了洪水猛兽,于是乎多说、网易云跟帖等国内的评论平台相继关闭,Disqus这样海外的优秀平台也被墙,一时间能够正常使用评论成为了一种奢侈。在这样的大环境下,终于,Valine – 一款极简的评论系统诞生了。今天顺手也把评论从Disqus迁移了过来,正式启用了Valine。
数据迁移
首先要感谢Deserts Pan大神连夜制作了Disqus的数据迁移工具,经过测试数据迁移也非常简单。
数据导出
数据导入
创建完成后,需要在应用的设置中,选择“应用KEY”,找到你的APP ID和APP KEY。
安全配置
安装
1 |
# Valine. |
1 |
<!DOCTYPE html> |
用微软的Hyper-V编译并安装OpenWRT
由于一些众所周知的原因,国内访问很多海外网站会出现访问速度缓慢甚至打不开的问题,其中不乏一些日常经常使用的例如搜索、邮箱等应用,虽然目前有很多解决方案来解决电脑、手机上面的网络加速问题,但是每个终端都要单独适配非常麻烦,因此直接在路由器端进行配置,让所有连入路由器的设备都可以无感加速,成为了一个相对『完美』的解决方案,因此我在家里的Gen8上面,用Hyper-V虚拟了一个OpenWRT的软路由来提供此类服务。
Hyper-V由于本身不开源,因此OpenWRT的官方编译版本在很早的时候就移除了针对Hyper-V的支持,因此为了让OpenWRT可以完美的运行在Hyper-V上,我们需要自行编译相关驱动组件。当然网上也有很多大神已经编译好的固件,但是大都加入了一些我自己不太使用的功能,作为一个洁癖,当然是自己编译一个了。
参考了Chiphell大神tedaz的文章非官方编译,Hyper-V的Openwrt x86和x86-64版,Chaos Calmer正式版后,修改整理如下。
准备工作
首先你需要准备一个Linux的编译环境,建议选择Ubuntu这类比较流行的Linux发行版本,并参考OpenWRT官方的OpenWRT编译系统-安装,安装好编译所需要的一些依赖包
以Ubuntu 64bit为例,需要执行下面的命令来安装相关的依赖
1
|
sudo apt-get install build-essential subversion libncurses5-dev zlib1g-dev gawk gcc-multilib flex git-core gettext libssl-dev
|
修改源码
首先从OpenWRT的官网Git下载OpenWRT的源码,建议下载15.05分支的,Trunk分支下的代码通常不是非常稳定。
1
|
git clone git://git.openwrt.org/15.05/openwrt.git
|
更新OpenWRT所有的feeds,以便你在后续可以提前把需要的ipk(例如luci、shadowsocks的一些依赖等)打包到固件中
1 |
cd openwrt |
下载完成后,需要针对源码进行如下的修改。
修改/package/kernel/linux/modules/virtual.mk,在最后加入下面的内容,修改内核,添加让OpenWRT内核支持Hyper-V
1 |
# |
修改/target/linux/x86/64/config-default和/target/linux/x86/config-3.18,均添加以下内容(这里后面如果内核有跟心,就修改对应的config-内核版本号即可)
1 |
# CONFIG_HYPERV is not set |
至此,修改完成。网上还有很多人建议修改Build相关的部分,考虑到后面我们统一使用其他工具来把img转成vhd,因此这一步我们直接生成img即可,不用修改Build相关的内容。
配置编译参数
OpenWRT有GUI的配置工具,因此我们回到OpenWRT源码主目录,执行make menuconfig,选择Target System为x86,Subtarget有x86_64,以便支持多核心大内存的使用。但是如果你需要在OpenWRT上使用XWare这类只有32位的工具,那就只能编译32位的包了。
然后在Kernel modules里的Virtualization Support里勾选上4个Hyper-V相关的。
最后取消Kernel modules里的Network Devices中其他网卡即可。
当然,如果你希望提前编译类似于shadowsocks之类的工具,可以参考Shadowsocks OpenWRT上的说明,下载相应的package并在配置编译参数时选中这个包即可,相关依赖会自动选中。
开始编译
使用命令make可以进行编译,make V=s可以让它输出调试信息,带上-j1参数表示用1个核心编译。建议你选择一台4核心以上的机器来进行编译以免等待的时间太久,由于编译过程中需要下载很多内容,因此流畅的网络(能自动翻墙是最好的)会大大加快你的编译速度。
我之前使用了E3-1230V2的CPU,用了6个核心编译,首次编译大概花了接近1小时的事件才全部编译完成。
转换格式,大功告成
编译完成后,在BIN目录下,可以找到编译完成的img文件(一般是压缩包),解压后,我们使用下面的命令来转化为Hyper-V可用的vhd格式。
1
|
qemu-img convert -f raw -O vpc openwrt-x86-generic-combined-ext4.img openwrt-x86-generic-combined-ext4.vhd
|
然后直接在Hyper-V下面使用就一切OK啦。
from
使用DNS-Forwarder提升ChinaDNS稳定性
很多人使用Openwrt的路由器配合SS来提升访问海外网站的速度和稳定性,其中ChinaDNS被很多人作为防DNS污染的利器,但是大多数人目前还是使用ss-tunnel创建一个UDP转发隧道作为ChinaDNS的上游来进行查询,这在不少地区的ISP环境下常常出现不稳定的现象,aa65535的DNS-Forwarder for OpenWrt很好的解决了这个问题,参考Wiki整理如下:
安装DNS-Forwarder for OpenWrt
从v1.1.0版本开始,DNS-Forwarder for OpenWrt把Luci设置界面分离到了OpenWRT-Dist-Luci,因此根据你的平台不同,你需要分别下载两个程序:
下载完成后,在路由器上执行opkg install安装即可
配置DNS-Forwarder和ChinaDNS
然后配置ChinaDNS的上游服务器,把原先使用UDP隧道转发的上游去掉,改为DNS-Forwarder的地址,这里是127.0.0.1:5352,另一个上游服务器保持不变,可以是114.114.114.114这种公共DNS,也可以是你的ISP的DNS
完成
Linux服务器的IP配置攻略
ifconfig命令是最重要的Linux网络命令之一,最主要的用途是设定、修改网卡的IP地址,修改网卡ip地址:
eth0 Link encap:Ethernet HWaddr 00:0C:29:F6:9B:27
inet addr:192.168.149.129 Bcast:192.168.149.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fef6:9b27/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:120 errors:0 dropped:0 overruns:0 frame:0
TX packets:116 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:12600 (12.3 KiB) TX bytes:12705 (12.4 KiB)
Interrupt:10 Base address:0x1424
#ip addr add 10.0.0.1/24 brd + dev eth0 label eth0:Alias
使用方法是:“netconfig ethX”。使用命令“netconfig eth0”后会在命令行下弹出一个对话框进行确认,选择“是”,如图1 。
图1 是否进行联网配置对话框 |
图2 netconfig配置界面 |
#service network restart
或者使用等价命令组(先禁用后启用):
#ifdown eht0
#ifup eth0
使用neat命令需要配置好X window系统,在命令行下运行“neat”命令后添加IP地址和其他相关参数后保存设置,从新启动网络和网络服务或计算机,见图3。
图3 图形界面添加IP地址 |
DEVICE=eth0 #设定网卡的名称,要跟文件名称对应 #
ONBOOT=yes #是否在开机的的时候启动网卡#
BOOTPROTO=static #启动的时候的 IP 取得的协议,这里是固定的,
如果是动态主机的话,要改成 dhcp 才行#
IPADDR=192.168.1.2 #IP 地址#
NETMASK=255.255.255.0 #子网掩吗#
NETWORK=192.168.1.0 #该网段的第一个 IP#
BROADCAST=192.168.1.255 #最后一个同网段的广播地址#
GATEWAY=192.168.1.2 #网关地址#
#GATEWAYDEV=eth0
ifconfig eth0:1 192.168.149.122 netmask 255.255.255.0
ifconfig eth0:2 192.168.149.123 netmask 255.255.255.0
以上是对网卡eth0修改了2个IP地址的方法,重新使用ipconfig命令查看,可以看到一个网卡上已经配置多个ip地址。如图4。
图4在一个网卡上配置多个ip地址 |
(2)设置无线网卡的操作模式为Managed:
#iwconfig ethX mode Managed
(3)如果采用了WEP加密,需要设置WEP密码:
#iwconfig ethX key password XXXXXX
对应40位和128位加密,password分别为6位和10位的十六进制数字。
(4)设置SSID,其中ESSID为无线接入(Access Point)的SSID。
# iwconfig ethX essid ESSID
(5)启动无线网卡:
#ifconfig ethX up
总结:
系统:Redhat9
目的:为一个以太网卡配置多个ip地址
linux操作系统中配置网络接口,一般是通过网络配置工具实现,但实质是修改与网络相关的配置文件起作用,故可直接修改文件达到目的。
由于发行版本不同,其有自己专用的配置工具,但也有一些通用的配置工具,如ifconfig,ifup,ifdown
查看
#ifconfig //当前网络接口情况
#ifconfig -a //主机所有网络接口情况
#ifconfig eth0 //eth0接口情况
配置
1.ifconfig
格式:ifconfig 网络设备 ip地址 hw MAC地址 netwask broadcase地址 … …
(详见ifconfig –help)
例如:#ifconfig eth0 192.168.1.41 broadcase 192.168.1.255 netmask 255.255.255.0
注:用ifconfig为网卡指定ip只是用来调试网络用,并不会更改系统网卡相关的配置文件。
2.rh9网络配置工具netconfig
格式:netconfig -d 网络设备 –ip –hwaddr –netmask ……
(详见netconfig –help)
例如:#netconfig -d eht0 –ip=192.168.1.41 –netmask=255.255.255.0
注:直接修改网络接口相关的配置文件
3.修改网络配置文件
rh中与以太网相关的配置文件位于:/etc/sysconfig/network-scripts目录下,如ifcfg-eth0。可以增加配置文件如ifcfg-eth1来增加新的网络接口。
激活和终止
格式:ifconfig 网络设备 up/down
或ifup/ifdown 网络设备
例如:#ifconfig eth0 up
虚拟网络接口
即:为一个网卡配置多个ip
与一般配置基本相同,只是一般网络接口是eth0,eth1,…,而虚拟网络接口为:(以eth0为例)eth0:0,eth0:1,eth0:2,…
另外需要注意的是在设置虚拟接口时,每个接口都有不同的物理地址
例如:#netconfig -d eth0:0 –ip=192.168.1.42 –hwaddr=00:11:00:00:B1:05 –netmask=255.255.255.0 –broadcase=192.168.1.255
(eth0:hw是00:11:00:00:B1:04)
在Linux服务器上开启安全的SNMP代理
我们已经介绍了监控宝的服务器监控,http://blog.jiankongbao.com/?p=133,那么如何在监控宝中创建和使用它呢?这篇文章中会有详细的介绍。
我们知道,监控宝使用标准的SNMP协议来为用户提供服务器监控功能,这意味着被监控的服务器上必须运行SNMP代理程序(snmpd),接下来我们将详细介绍如何在Linux服务器上安装、开启Snmp代理,并且进行必要的安全配置,随后我们会在其它文章中介绍Windows服务器的配置方法。
关于SNMP协议的定义和描述,可以浏览RFC1157,这里还描述了SNMP的设计动机和原理,到目前为止,SNMP已经被无数的设备用来作为监控协议,并且工作得非常可靠,至于安全性和必要的安全配置,我们在随后会详细介绍,你完全可以让SNMP代理程序在你的服务器上安全的运行。
在各种Linux分发版中,大多数都已经默认集成了snmpd,比如在suse10中,你可以这样开启snmpd:
suse10:~ # /etc/init.d/snmpd start
如果没有默认安装,你要做的就是自己来编译snmpd,按照下边的步骤,非常简单。
编译、安装以及安全设置
对于Linux平台,我们推荐使用Net-SNMP,它实现了标准的SNMP协议,并且包括了代理程序以及各种SNMP工具。
http://net-snmp.sourceforge.net/
关于Net-SNMP编译、安装、安全设置以及授权IP地址等的详细介绍,请参考我们的Wiki,如下:
http://wiki.jiankongbao.com/doku.php/文档:安全指引#linux_snmp
在监控宝中添加服务器
玩转 Windows 10 中的 Linux 子系统
管理服务器和设备
ssh-keygen
和 ssh-copy-id
设置好了公私密钥对,所以使用 ssh 只需要如下简单输入即可:远程脚本
last -x
命令,然后搜索包含“reboot”的一行。我在我的 Ubuntu Minecraft 服务器上运行的结果如下:使用 Windows 文件
/mnt//
目录(挂载点)来访问你计算机上的文件系统。举个例子,你的 Windows 上的 C: 和 D: 根目录可以在 WSL 中相应地通过 /mnt/c 和 /mnt/d 访问。当你要把你的 Windows 下的项目文件、下载的内容和其它文件用到 Linux/Bash 之中时这很有用。mount
这样的命令时它们不会显示。但是它们可以如你预期的那样工作。举个例子,在 Windows 中,我在我的 C 盘根目录下放了一个名为 test.txt 的文件,我可以在 WSL 中如下访问它:file://
协议,并 clone 了位于 /mnt/c/git/NetHack 下的仓库。你可以以类似的方式来访问你的 Windows 下的所有文件。发起 HTTP 请求
Build Tour 大会上的演示:NetHack
前置需求
构建 NetHack
玩 NetHack
Python
重置你的 WSL 环境
你使用 Bash 和 WSL 的感觉如何?
更多参考与延伸阅读
- Build Tour videos
- Bash Scripting 101
- WSL Home
- WSL Overview
- WSL FAQ
- WSL System Calls
- Scott Hanselman’s video on how to run WSL