分类目录归档:生活杂记

OpenWrt使用阿里云DDNS服务动态域名解析

个人环境:

主路由:192.168.10.1 (主路由pppoe拨号)
OpenWrt旁路由:192.168.10.2  (网关设为主路由192.168.10.1)

现在需要通过OpenWrt上的DDNS服务进行动态域名解析,由于是旁路由,所以无法直接从WAN口获得公网IP。首先需要安装Luci-app-ddns这个插件,进入插件页面。

主机名填写顶级域名,域名填写需要DDNS解析到的二级域名,如果想直接使用顶级域名就写成“@zivers.com”这种形式。用户名和密码填写从阿里云获得的AccessKey密钥对

切换到高级设置标签,由于OpenWrt不是用作主路由拨号,无法直接通过网口获取到外网IP,所以需要选择用URL方式获取。默认提供了一个监测URL的网址,可以直接使用,如果不用这个,也可以使用其他的,比如:http://ddns.oray.com/checkip 或者 http://www.3322.net/dyndns/getip 

最后,如果开启了Shadowsocks服务的话,记得把URL检测的网站加入到白名单中,否则检测到的外网IP将会是代理服务器的地址

 

Hyper-V部署OpenWrt旁路网关(编译Lean版)

准备工作

1、已经编译好的OpenWrt镜像文件。由于是用于Hyper-V部署,所以编译时选择保存为.vhdx后缀的镜像文件,具体如何编译,参见源码地址:https://github.com/coolsnowwolf/lede。镜像文件名类似为: openwrt-x86-64-combined-squashfs.vhdx

2、一个可用的网口。我的主板上有两个千兆网口,一个是Intel I210,另一个是Intel I219-LM。I210我用来做为Hyper-V服务器的网络端口,而I219-LM则是我准备给OpenWrt专用的。

图片中,I210和I210创建的vEthernet是用与Hyper-V的虚拟交换机,I219-LM目前空闲。其他两个X540为万兆网口,与本文无关。

创建虚拟交换机

在Hyper-V管理器中,选择右侧的虚拟交换机管理器,在弹出的窗口中,新建外部虚拟交换机

选择之前说的用于OpenWrt的网口,这里用的是I219-LM,并取消下面的允许管理操作系统共享此网络适配器选项。取消此选项后,在系统的网络管理页面就不会看到I219-LM的vEthernet,只是单纯显示I219-LM。

由于我机器上的网口有两个,所以可以给OpenWrt专用一个网口,如果主板上只有一个网口,那配置起来会麻烦些,需要让Hyper-V和OpenWrt共用这一个网口,步骤较为复杂,这里不赘述。

创建OpenWrt虚拟机

创建虚拟机的步骤和一般创建步骤相同,这里只说明几个地方

1、创建时选择第一代虚拟机,兼容性和稳定性比较好

2、配置网络时,选择刚才创建的OpenWrt交换机

3、硬盘选择之前准备好的.vhdx文件

完成后点击完成,先不要启动虚拟机。在Hyper-V管理器界面,可以修改虚拟机处理器数量,我这里改成了两个,增加性能。另外,需要在网络适配器的高级选项中,勾选开启MAC地址欺骗选项。

保存后,启动虚拟机。

OpenWrt配置

进入虚拟机,默认是root用户登录,且无密码,所以可以直接查看和修改系统文件。主要修改的文件是etc/config/network这个网络配置文件

默认的配置OpenWrt使用的IP地址为192.168.1.1,那么就会有以下几个情况

1、OpenWrt就是用来当主路由的,且192.168.1.1不会和运营商的路由器网关地址相同,那就保持不变即可。直接访问192.168.1.1即可访问OpenWrt管理页面。

2、OpenWrt是用来当旁路网关的,主路由网关地址为192.168.1.1。这种情况下,OpenWrt和主路由网关冲突,需要修改OpenWrt的IP为192.168.1.2。之后通过192.168.1.2来访问OpenWrt管理页面。

3、OpenWrt是用来当旁路网关的,主路由网关地址为192.168.2.1。这种情况下,OpenWrt和主路由网关不冲突,但由于不在一个网段,OpenWrt无法通过主路由连接网络,所以也需要修改OpenWrt的IP,可以改为192.168.2.2。

具体修改IP就是直接修改上面那个文件,然后重启网络,执行

service network restart

OpenWrt设置

完成上述步骤之后,登录OpenWrt。下面以上文的情况3为例(即主路由为192.168.2.1,OpenWrt为192.168.2.2),登录用户名为root,默认密码password。

登陆后,在“网络->诊断页面”可以测试网络连接情况,目前是无法上网的,如下图所示。

所以,需要修改一下端口设置,进入“网络->接口”页面,点击“修改”按钮。修改其中的“IPv4网关”地址为主路由网关地址(192.168.2.1),修改“IPv4广播”地址,增加自定义的DNS服务器,点击“保存并应用”。

修改完成后,再进行网络测试,可以联通了。

至此,OpenWrt旁路网关配置完成。

使用OpenWrt旁路网关上网

如果需要使用OpenWrt上网,那只需要将设备的默认网关设置成OpenWrt地址即可,如上设置,则为192.168.2.2

家庭共享记录(NFS、SMB、WebDAV、FTP)

这几天为了实现家庭共享及外部访问,对这四种共享方式都进行的尝试。最后选择了NFS+SMB的方式。思路很简单:用最少的工具完成功能。

SMB

从最简单的SMB说起,SMB是windows自带的共享协议,我在Hyper-V Server上建立后,在Windows虚拟机上可以通过硬盘映映射,在Linux虚拟机上可以通过samba的方式做mount。外网访问可以通过端口映射的方式,将445端口映射到外网即可。但是遇到两个问题:

1、CentOS下mount后无法修改目录权限。我想把nextcloud的data目录放在samba共享目录下,nextcloud正确运行需要这个目录属于apache用户且权限为0770,但是默认mount时以root用户挂载的。这个我找到了办法:可以mount命令执行时对权限进行设置。

mount -t cifs -o dir_mode=0770,file_mode=0770,uid=48,gid=48,username="Administrator",password="******",vers=3.0 //192.168.1.2/E$ /mnt/nextcloud

2、smb v2+版本在Linux下mount时会出现文件夹丢失的情况。挂载后使用ls -la命令无法看到部分文件夹,使用cd+tab自动补全也无法成功,但是可以直接cd到文件夹下。Google后确认时smb v2+的bug,暂未修复,只能通过启用不安全的smb v1(windos server默认时禁用的),然后在mount命令中指定版本vers=1.0来解决。

可以参考此份Bug Report:https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1572132

3、在iOS上使用PhotoSync软件进行照片备份时,如果使用SMB方式连接,也需要在Server端开启Samba 1.0支持,否则会报Samba链接错误(Code:56)。

FTP/WebDAV

这俩放一起讲,因为方式都差不多,可以实现共享,但也存在一些问题:

1、如果时在虚拟机上开FTP共享用SMB挂载的磁盘,将无法访问。认证的时候会一直要求登录

2、WebDAV不能挂载磁盘根目录,需要指定一个目录

3、需要使用IIS开web服务器

4、速度和稳定性实际使用不如smb

5、FTP时应用层协议,不能向文件系统一样挂载

其中FTP还得单独讲一下,FTP分为主动和被动模式。

如果不开启被动模式,访问的时候就需要在IE高级设置中关闭“使用被动FTP”选项(即使是想在资源管理器里用ftp://xxxx访问也一样得去IE设置里修改),而且也无法在外网通过FTP APP访问(不做好被动设置的话,在APP里无论选主动还是被动都无法连接)。

如果需要开启被动模式,那需要做好两个设置,1、在FTP服务器设置中,开放被动FTP端口,我设置成了5000-5099;2、需要在防火墙设置里,把/system32/svchost.exe设置为允许。

考虑到内网共享后面还有更简单的NFS方式(至少不用开IIS),这两个就先放弃了。

NFS

这个简单,但是安全性比较低。所以我只拿来做内网共享了。由于是匿名的,所以唯一的安全方式是在权限中限制可以访问的IP。优点也很明显:

1、无需登录,操作简单

2、在linux下安装nfs-utils即可mount。mount后可以修改目录权限(比samba方便许多)

3、无需使用其他服务

方案:

服务端:Windows Server开SMB+NFS共享。

内网Windows虚拟机:SMB磁盘映射

内网Linux虚拟机:NFS挂载

外网APP:SMB端口映射

 

Ubuntu18.04 Nvidia显卡驱动安装

首先删除旧的Nvidia驱动文件

sudo apt-get purge nvidia-*

加入PPA源

sudo add-apt-repository ppa:graphics-drivers/ppa

安装Nvidia驱动

sudo apt-get update
sudo apt-get upgrade
sudo apt-get search nvidia-
找到最新的一个版本后执行安装,比如当前最新版为nvidia-390
sudo apt-get install nvidia-390

安装完重启,即可在系统信息中看见被识别出型号的Nvidia显卡

系统日志DistributedCOM 10016错误解决办法

错误日志:

应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行的地址 LocalHost (使用 LRPC) 中的用户PC\Henry SID (S-1-5-21-2839826810-1363819373-3356516658-1001)授予针对 CLSID 为 {D63B10C5-BB46-4990-A94F-E40B9D520160}、APPID 为 {9CA88EE3-ACB7-47C8-AFC4-AB702511C276}的 COM 服务器应用程序的 本地 激活 权限。此安全权限可以使用组件服务管理工具进行修改。

解决办法:

Regedit Take Ownership

You will need to take ownership then set rights against two different keys.  The keys are:

HKEY_CLASSES_ROOT\AppID\{9CA88EE3-ACB7-47c8-AFC4-AB702511C276}
HKEY_CLASSES_ROOT\CLSID\{D63B10C5-BB46-4990-A94F-E40B9D520160}
  1. Open Regedit with Administrators privileges and navigate to the keys above (remember you have to do this twice)
    1. WinKey + X >> Command Prompt (Admin) >> Type in Regedit
  2. Right click the key >> permissions
  3. Click advanced
  4. At the top change the Owner to COMPUTERNAME\Administrators
    1. Please note if you are domain joined you’ll have to change where you are searching from to your local computer
  5. Look in the Permission Entries field
    1. If the local system administrators group is listed ensure it has full control
    2. if the administrators group is not listed add it and give it full control.  (note you can only do this if you are a member of the administrators group and it is now the owner)
  6. Click okay a lot >> Ensure you apply permissions to all child objects

Change DCOM Permissions

Need to ensure DCOM permissions are setup

  1. Open DCOMCNFG as an Administrator
    1. WinKey + X >> Command Prompt (Admin) >> Type in DCOMCNFG
  2. Navigate to Component Services >> Computers >> My Computer >> DCOM Config
  3. Find the RunTimeBroker  >> Right Click >> Properties >> SecurityTab
  4. Launch and Activation Permissions >> Edit >> Add System and give it full control
    1. I also added the Administrators group just for testing

While changing permissions I was prompted several times to remove bad account references.  I did this as the computer knows which accounts have been removed.

翻译:

第一步:先在注册表编辑器中找到报错的两个键,修改权限,给用户完全控制权限。

第二步:以管理员身份运行“组件服务”,找到对应的DCOM,修改权限,给用户完全控制权限。

参考:

再一次回归阿里云ECS

网站从三年前离开阿里云ECS后一直使用的是HK的服务器,虽然稳定而且支持外网访问,但是价格较高。经过三年的成长,阿里云的服务器价格下降十分明显。处于成本考虑,决定再次将网站迁移至阿里云。

目前使用的实例为ecs.xn4.small规格,配置为1C1G1M的最简配置。虽然配置不高,但只用于支持一个个人博客站还是足够了。目前的服务器放在广受好评的华东1区,从深圳访问速度也还是不错的。

 

uTorrent Disk Overloaded解决方法

由于填零机制,uTorrent在大量下载的情况下,很容易就会发生磁盘过载(Disk Overloaded)的问题,要解决这个问题,需要从以下几个方面配置。

1、替换uTorrent版本。最新版本的uTorrent客户端容易出现内存泄漏、磁盘缓存溢出等问题,建议替换到2.0.4或者2.2.1版本。我用的是2.0.4的古老版本,功能简单够用也十分稳定。老版本的uTorrent可以在OldVersion.com这个网站上下载。

2、减少同时下载数。由于填零机制,过多的下载数会瞬间占满缓存,所以建议减小这个数值。我设置成了10

3、修改缓存设置。这是最重要的一步,通过修改磁盘缓存配置,能够直接的解决过载问题。建议设置如下。

4、修改磁盘I/O配置。这也是重要的步骤,通过直接修改磁盘I/O机制,减小负载。核心就是将diskio.no_zero和diskio.sparse_files设置为true

深圳医院近视验光经验

正在的这副眼镜不小心被折了,上次配镜距离现在也已经有快两年,想着刚好去配个新的。以往都是在街边的各种眼镜店里配镜,总感觉随便验个光就配了,还是不放心。而且在店里配价格虚高,往往需要砍很久的价才能配好。不想浪费口舌,所以这次打算在网上购买眼镜框和镜片。

网购眼镜第一步就是需要拿到自己眼睛的数据,网上查了查“深圳验光哪里好”,搜索到的结果基本都指向了医院。深圳的医院比较好的是深圳市人民医院和深圳市第二人民医院,另外眼科方面还有一个专科医院深圳眼科医院。由于眼科医院距离比较远,网上也有反映过程长收费贵的问题,所以我就没有考虑。于是我就分别去了两家人民医院的眼科验光。

深圳市人民医院

选了个周日中午出发,1点半从3号线翠竹站下车,D口出站就是市人民医院。排队的时候还有17个主任医师号,看来这个号并不是很紧。十分钟排完队,挂号费¥8。接着上5楼等护士叫号,不到一小时叫到我了。进去和医生说验光,医生开单缴费,总共不到1分钟。回1楼缴费,一共¥40。接着回到5楼验光室,没有排队,直接就进去了,医生开始验光。是个男医生,30岁左右。

这里详细说下验光经过:首先医生关了室内的灯,然后上验光仪器,两眼分别看了房子后开始试镜看E字表。调好能看清1.0后,开始下一项检查。医生用小手电照,然后让我看手电,两只眼睛依次看。这个检查我不太明白是在看什么。然后检查就完了。医生开验光单子。我发现单子上并没有写瞳距,于是我问医生。他说瞳距是在配镜的时候测的,这里没有瞳距仪,只能手测但是不准。不过我还是让他拿尺子手测了。测完后,给了我验光单:

从进验光室,到开完验光单,一共用了不到十分钟吧,总体感觉并不是十分靠谱。

深圳市第二人民医院

次一周周末,去市二医院做同样的检查。这次是在官网上预约的,提前三天预约,号还很充足。7号线黄木岗站下车,C口出站直接就到了市二医院的门诊楼。进门就是预约取号处,医保卡登记后就拿到了号。眼科并不在门诊楼,而在边上的银华大厦1层。去的时候是1点半,医生2点才上班。这里有一点很不人性化,必须吐槽一下:医生2点上班,所以门诊的门直接就锁上了,明明里头有坐可以让人休息,却不开门把患者锁在门外。

终于等到2点,医生来了,开门等叫号。由于我来的早,第一个号就是我的。和人民医院一样,问诊时间很短,一问是验光的就直接开单子了,没有废话。怎么说的,我觉得这样也不错,节省大家时间。去门诊大楼缴费后(检查费¥32),再回到眼科门诊验光室。这里已经排上队了,不过人不多,都是小孩儿。接下来说下这边的验光经过:

这次是个女大夫,也很年轻,30岁左右。首先还是在仪器上看房子,看完后E字表试镜。这次给人的感觉负责些,主要是体现在言语上,比较关心病人的感受。看完后,由于我两只眼镜度数相差较大(屈光参差),所以医生让我带着试镜出门走一会儿看看能适应不。5分钟后,感觉基本没问题就回去找医生确认。医生开验光单子,也没有测瞳距,看来医院都是默认不测的。我问医生能测不,她反问我是不是要配镜,我说是,她也没多说就拿瞳距仪出来测了一下。期间并没有推荐任何配镜店包括医院自己的。测完后开出了验光单子:

这次验光体验比人民医院的好些,感觉医生也负责任了些。不过最后测的结果两家医院相差不大,瞳距用机器测也和人民医院手测相同。

总结

两家医院医生的验光水平应该是基本相同的,应该都还比较准确。但是从服务的感觉而言,市二医院给人的感觉更加认真负责任些。不过试镜情况而言,我感觉反而市人民医院试镜的度数带试镜片更加舒服,所以在最后的配镜选择上,我对度数的要求应该会更加偏向市人民医院一些。总体而言,在这两家任意一家验光都是不错的,比眼镜店要放心些。

附:验光结果表