使用 docker 运行支持端口转发的 WireGuard + qBittorrent

最近有一些使用 bt 下载的需求,裸奔总是觉得稍微有点儿不踏实,于是考虑套一层 VPN。用 wireguard, qbittorent 和 nginx 拼了个 compose 文件,有同样需求的可以直接复制下来使用。配置文件中 wireguard 段的 56215 为我的 vpn 供应商的转发端口,还有 qbittorrent 段的 volumes 下载目录等都需要按照自己实际情况修改。

compose.yaml

version: "2.1"
services:

  wireguard:
    image: linuxserver/wireguard
    container_name: qb-wireguard
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=America/Toronto
    volumes:
      - ./config:/config
      - /lib/modules:/lib/modules
    ports:
      - 56215:56215/udp
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
      - net.ipv6.conf.all.disable_ipv6=0
    restart: unless-stopped

  qbittorrent:
    image: lscr.io/linuxserver/qbittorrent
    container_name: qbittorrent
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=America/Toronto
      - WEBUI_PORT=9090
    volumes:
      - ./config:/config
      - ./watch:/watch
      - /data/downloads:/downloads
    network_mode: service:wireguard
    restart: unless-stopped

  nginx:
    image: nginx
    container_name: qb-nginx
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=America/Toronto
    volumes:
      - ./config/nginx.conf:/etc/nginx/nginx.conf:ro
    ports:
      - 9090:9090
    restart: unless-stopped

./config/nginx.conf


events {
  worker_connections 1024;
}

http {
  server {
    listen 9090;
    location / { 
      proxy_pass http://wireguard:9090;
    }   
  }
}

然后把 WireGuard 的配置文件放到 ./config/wg0.conf 就可以试着运行了。打开 ip:9090 应该可以看到 qBittorrent 的 web 管理界面,默认登录帐号是 admin/adminadmin。登录成功后进行最后的设置,把 Tools->Options->Advanced 里面的 Network Interface 设置为 WireGuard 设备,确保 VPN 不正常工作的情况下 qBittorrent 不会有网络流量。

Posted in 我的慵懒生活 | Tagged , , , , | Leave a comment

7年后的一篇 blog

最近由于 Covid-19 大部分人都 work from home 的原因,好几个朋友都把 blog 收拾了起来,于是也来折腾了一下自己上次更新还在 2013 年的 blog。之前的 blog 一直 host 在 linode,现在这台 vps 也没有别的用途了,只放 blog 有点儿过于浪费,这次借机迁移到了 Oracle Cloud。

没更新的这7年一直住在 GTA 郊区,家里多了个 Pre-school 的闺女,儿子已经在读 Grade 6 了,家里还多了两只猫。希望自己接下来能坚持更新 blog,从补一些之前没有记录的个人小项目开始吧。

Posted in 我的慵懒生活 | 5 Comments

2013 年拿了好多的卡

2013-travel

在即将过去的 2013 年,由于个人原因和公司的各种乱七八糟事儿出了不少差,简单总结一下各航空公司和酒店的中级会员待遇:

航空公司:

  • UA 金卡:新的白金卡还没寄来。这是今年用的最多的,CPU 几率不高,最大好处是额外行李,不管是北美内的航线还是国际航线。
  • TK 金卡:本来是想补充 UA 金卡在北美内不能用 UA Club 的缺,但是越来越觉得 UA Club 去不去无所谓,所以这张卡完全没什么意义了。
  • AF 金卡:完全没意义,北美境内包给 UA 了 ,DL 国际航线又那么差。
  • CX 金卡:最大意义是从 HKG 出发可以用 CX 的旗舰 lounge,但是 CX/KA 的飞机和服务真的是很一般,而且宁愿头等舱空着也不给买 Y fare 的金卡会员升舱这种所谓的“保留高舱位价值”的做法实在是不敢认同。

酒店集团:

  • SPG:小金卡完全不用考虑什么升级房间行政待遇,一般也就给个景观稍微好点儿的所谓的会员房。金卡最大优势:免费上网+保证 4 pm checkout。
  • HHonor:同样小金卡,住 Hilton 送早餐这个非常赞,现在还有免费 wifi,但是据说 14 年就没了,也太抠门了。
  • Marriott:万豪的金卡貌似比别家都值点钱,保证行政待遇,送早餐,Marriott 和 Renaissance 等品牌保证 lounge。国内的万豪更是厚道,一般都可以去餐厅用早餐,lounge 的晚饭基本没比餐厅自助差多少,北美的基本是早餐面包片晚餐炸鸡柳。

2014 年相对就要安稳很多,一是不用回国内的公司了,二是要尽量呆在加拿大境内凑入籍时间,自己感觉有个 UA 金卡加上 Marriott 金卡就可以很舒服的出差了,就这样吧。

Posted in 我的慵懒生活 | Tagged , , | 1 Comment

把 img.gd 注册回来了

之前由于我的疏忽,外加 .gd 这个奇葩的域名居然没有 grace period 导致 img.gd 在去年9月被别人抢注了。。。我一直以为这么偏门的域名不会有人感兴趣,但是居然还是被一位在广州的姓孙的同胞注册了,估计也是位推友,要不然应该不知道 img.gd 这个域名和上面的服务吧。

前一段时间查了下 whois,发现这个域名一直没有续费,就多关注了一些,终于域名在10月16日进入了赎回期,并且在今天被删除,我马上注册了回来。

不过相比两年前,因为 twitter 强推自己的图片服务,导致第三方 twitter 图片服务基本已经销声匿迹了,两年没有更新的 img.gd 更是连 api 都无法接入了,于是恢复服务就没有什么意义了。

这个域名还能干点儿啥?有人能给点儿想法吗?

Posted in 我的慵懒生活 | Tagged , | Leave a comment

从一件小事儿看北美-日本-中国三地关于严格执行制度和人性化的一些区别

这篇 blog 的内容源于最近的带 lisa 和豆干儿一起出行的经历,我觉得有些意思,在此记录一下。

首先是背景,我和 lisa 带着三岁的豆干儿从 JFK 经 NRT 回 PEK,返程是 PEK-HND-NRT-JFK,全程 NH 出票,NH 承运。按照星盟官网公布的规定,我可以免费带一名同行人员进入星盟成员休息厅,也就是说严格按照规定的话我是无法同时带 lisa 和豆干儿使用休息厅的。

接下来是我们分别在三个机场的情况:

JFK:NH 在 JFK T7 没有自己的值机柜台,由 BA 的地服完成这项工作。在值机完成后,地服单独用登机牌纸打印了三张 lounge invitation 给我,告诉我需要凭这个进入 BA 的 lounge(因为 BA 并不是星盟成员)。到楼上后发现 NH 在 JFK 和 BA 共用运营 lounge(再次,这个组合真的很奇怪),把 lounge invitation 给 NH 接待后就可以进入了。(其实我到值机之前一直以为要用隔壁的 United Club,不过 BA lounge 确实比 UC 要好。)

NRT:NRT 出发是早上,虽然我在 JFK 就已经拿到了这段儿的登机牌,但是由于 JFK 地服的失误我还是先去了 NH 的值机柜台修改信息。地服态度非常好,但是最后委婉的跟我说“我看您一共有三口人,但是只有两个人可以进入我们的 lounge 哦。。。”。我们的登机口在50附近,正好在 NH lounge 的下方,于是我抱着试试看的态度去挑战了一下 lounge dragon:
“你看我们带着孩子,一会儿从这里出发,能进去吗?”
“不好意思,您只能邀请另外一名旅客进入,超过俩岁的儿童都要单独计算的”
“他才三岁呀,通融通融嘛”
“真的不好意思,我们也很想通融,但是我们不能违反规定,如果您想带宝宝一起进入 lounge 的话,可以用 5000 日元购买一张 one time pass。”
“。。。那还是算了吧,拜拜”

好在 NRT 还有 United Club,过去后在门口的遭遇几乎和 NH 那边一模一样,死脑筋的日本人死咬着2岁以上单独计算这条规定,最后还是用了一张 one time pass 才放行我们。

最后是昨天从 PEK 出发,地服来自 CA,所有手续完毕后地服给了我 CA lounge 的位置,在被我问到豆干儿的问题后地服的回答是:“12岁以下一般都没有问题的”。实际情况也却是是这样,休息厅接待只扫描了一下我和 lisa 的登机牌,什么额外的话都没说。

流水账完毕,经过三种完全不同的遭遇后,我 Google 了一下,发现大家的经历基本上也和我一样:

北美:只要是同一家庭的随行儿童,岁数别太大,没有数量限制,都可以跟着父母使用休息厅。
日本:严格执行制度,完全没可能免费带2岁以上的儿童进入。
天朝:没有找到类似的报告。

所以看起来,北美对制度的执行很人性化,尤其对家庭很看重。日本则完全是另外一个极端,有白纸黑字的制度就完全没有任何例外。而天朝貌似是有一套自己的规定。

由小见大。

Posted in 三个人的旅行, 我的慵懒生活 | Tagged , | 4 Comments

笔记:关闭泳池

今年夏天这次搬家后感觉日常工作一下子比以前多了很多:浇花,剪草等等,但是最麻烦的还是泳池的维护。日常维护还算容易,大概经过1个多月的磨合实践就可以做到所有数值稳定平衡了,但是很快天就凉了下来,需要将泳池关闭来年夏天再用。也差不多在这个时候信箱里面塞满了泳池维护公司小广告,关闭泳池的行价是300刀,年年都这样的话实在是不便宜。好在前屋主给我写了一个相对比较详细的关闭流程,我照猫画虎自己完成了这项工作,一些细节和照片记录下来以备来年参考。

关闭泳池流程:

  1. Vacuum 泳池(同日常维护)。
  2. Backwash 泥沙过滤器(同日常维护)。
  3. 将泥沙过滤器的手柄转到 Drain 档。
  4. 用吸尘器抽水,将水位降到2个出水口(eyeball)以下。
  5. 将 eyeball 拧下来,堵上黑色的塞子。2012-pool-close-guide-09 Continue reading
Posted in 我的慵懒生活 | Tagged , , , , , , | 2 Comments

2012夏天美东快闪 Day1: Toronto-Buffalo

这个夏天,lisa 终于又毕业了,于是她开始工作前这段时间成了难得的假期。正好豆干儿姥姥姥爷六月中要来多伦多看外孙子,所以索性给他们买了飞华盛顿的机票,我们开车过去接顺便在美东走马观花一番。

6月14日是 lisa 的 convocation,整个仪式过程比我们想象中要长很多,完事儿回家收拾完东西开车出发已经是下午2:45了,正式踏上为期一周的美东快闪由。

豆干儿小盆友在从 convocation 回家的路上就都几乎坚持不住了,自然是上车后没多久就睡着了。因为 400/401 修路,所以绕了好一段儿 local 路线才上了 427 ,随后又在 QEW / 427 段和 QEW / trafalgar 遭遇小幅堵车,结果5点了才开到彩虹桥海关。过关的车辆不少,排了大概15分钟队,海关官员很痛快,就问了问有没有带奇奇怪怪的吃的,连去美国干啥都没问就让我们过去了。

过关后先去 CBI 取了之前 Amazon 购买的 Thule 车顶行李袋和几件小东西(剩下的等回家时候再取),接着到 Buffalo Wing 起源地 Anchor Bar 吃晚饭。除去必点的鸡翅外,这次还点了一个小号(12寸)的 Cheese + pepperoni pizza,味道出乎意料的好,尤其是烤的焦焦的 pepperoni,非常的美味。

酒足饭饱后沿着 Main St 往今天住宿目地 Hyatt Regency Buffalo 开,后来发现 Main St 中间那段是步行街,在 GPS 的帮助下饶了 500 米找到了酒店的车行入口。这个酒店奇怪的是居然没有自己的 Self Parking,用不起 Valet 的我们只好把车停在了街对面的停车楼,只要$5/次,cash only,隔壁还有一个可以 in and out 的露天停车场,但是要$15/晚。

这家 Hyatt 是我在 Priceline 拍到的,含税大概是 $60,酒店位置很好,在 Downtown 最核心的地方,紧邻 City Hall 和法院,在房间还可以看到远处的 HSBC Center,可惜位于这里的加拿大领馆已经在这个月初关闭,又浪费了一大笔纳税人的血汗钱。酒店设施稍微有一些陈旧,但是员工态度很好,房间也比较干净,checkin 时候前台还拿出一大堆玩具让豆干儿小盆友挑一个,豆干儿挑了个 24pc 的拼图,和妈妈一起玩儿的很开心。我们要了一个在 11 层游泳池旁边的房间,游泳池完全没人,lisa 带豆干儿去游泳时候完全是专场,另外游泳池所在房间的2面都是落地玻璃,可以看到漂亮的夜景以及远处的 Niagara River。

游泳,洗澡完毕,豆干儿也就犯困睡觉了,明天我们要从 Buffalo 一路向南离开纽约州,穿过宾州,路过马里兰,最终到达华盛顿 IAD 机场,行程大概 610 公里,预计路上时间7小时。

Posted in 三个人的旅行 | Tagged , , , | 1 Comment

Priceline & Hotwire 拍酒店技巧进阶

IAD-westin-priceline-won

去年1月我写了一篇如何用 Priceline / Hotwire 拍酒店的 blog,最近又有一些新的心得,发出来和大家分享。

首先是之前提到的 betterbidding,他们推出了一个叫做 Priceline Hotel Maps 的工具。

priceline-map

如上图,这个工具可以在地图显示各个区域的酒店分别在什么地方,以及大家分别多少钱拍到的。你可以通过区域,星级,入住的星期,入住的月份等条件来过滤,这样的形式比之前的纯文字清楚直观的多。上图就显示了现在之前和之后三个月内所有在 Fishermans Wharf 和 Moscone Center 的旧金山酒店竞拍结果,让你出价时候心里更有底。

第二个技巧更为实用一些,这几天实践了好几次效果不错。这个技巧有一个理论依据前提:会在 hotwire 销售房间的酒店都同时和 Priceline 签订了协议,当然事实不一定完全是这样,但是据很多人反映绝大部分时候都是这样的。接下来就是实践了,一般来说 hotwire 在显示结果时同一区域只会显示最便宜的一家酒店,根据前面的前提,这家酒店也会是 priceline 同区域同星级里面最便宜的(也就是会第一个拍到的),如果我们可以根据设施和 betterbidding 的结果判断出这家酒店的名字,那么我们基本在 priceline 下手之前就知道自己会拍到哪家了。更重要的是价格,hotwire 因为没有竞拍的过程,所以价格会比较高,同一天同一间酒店 priceline 肯定是比 hotwire 便宜的。比如我在预订纽约时代广场的酒店时发现 hotwire 有 $118 的 Manhattan Hotel At Times Square,这个时候我们转到 priceline 来拍,从 $118的80% $95开始,之后加到$105拿下了这家酒店。也就是说 hotwire 的酒店标价可以作为我们 priceline 起拍价的参考,根据你的时间和耐心,从 hotwire 价格的75%或者85%起拍也都是不错的选择。

基本就是这样,希望大家可以用低价拍到舒服的酒店,另外不要忘记把结果发到 betterbidding,我已经发了将近20个结果了 😉

Posted in 三个人的旅行 | Tagged , , | Leave a comment

TP-LINK(特破林克)你这是要闹哪样?

由于现在居住条件限制,家里的台式机和网络打印机一直在用两个 Airport Express 做网桥接入家里的网络。这样一是实在有些奢侈,二是出门的时候总得拆下来一个重新配置,麻烦也不少。于是前段时间开始踅摸着买一个便宜的网桥,一番搜索后发现 TP-LINK 的 TL-WR710N 这款貌似不错:支持网桥,repeater,router 等多种模式、有两个 LAN 口,还有一个可以给 iPad 充电的 USB 口,而且价格只要100多一点软妹币

至于 TP-LINK 这个品牌,我也算是用过他们的产品,但是不多:给我妈买过一个 ADSL Modem+无线路由一体机;另外我以前家里面的小区宽带是一家小公司,其配置的 PPPoE Server 极其诡异,使用 Airport Extreme 和 DD-WRT 都拨不上去,我只好又买了一个 TP-LINK 最便宜的有线路由器放在最前面专职拨号用。出乎我意料的是,这两个超便宜的设备用起来都异乎寻常的稳定,连续工作若干个月都不用重启。所以我对 TP-LINK 这个品牌的印象还是不错的,也曾经推荐给朋友购买。

但是这次的 TL-WR710N 实在是让我恶心的够呛。

拿到货后拆包装,第一感觉是你这外观和功能照抄 Airport Express 也就罢了,这包装涉及也有必要完全山寨吗?接下来就是更为痛苦的设置过程:

  1. 接电,发现默认的未加密 SSID,点连接。。。无法获取 IP 地址! 囧
  2. 关闭 wifi,开启 wifi,重新连接。。。无法获取 IP 地址!囧rz
  3. 抄了根儿网线,连到电脑 LAN 口上,ipconfig en0 down / up。。。无法获取 IP 地址! 囧r——-z
  4. 无线也不行,有线也不行,难道我拿到的这个路由器是坏的?翻出说明书一看,我靠原来要手工设置 IP 地址为 192.168.1.x (x要大于2),想当然的认为路由器默认 IP 地址应该是 192.168.1.1,多了个心眼看了一眼,我再靠居然是 192.168.1.253,这种设计对用户也太不友好吧?
  5. 手工设置 IP 地址,打开管理界面了,设置为 Client 模式,连接家里的主 SSID,保存,重启。。。无法获取 IP 地址!崩溃了!
  6. 检查 Airport Extreme 的 DHCP 服务器状态正常,而且通过 Airport Express 接入无线网的打印机也工作正常。
  7. 尝试各种设置,网桥模式,Client 模式,全部无法从上级服务器获取 IP 地址。但是设置为 AP 模式,电脑不论是有线还是无线连接都可以正常获取 TL-WR710N 自己 DHCP 服务器分配的 IP 地址。
  8. 难道是固件 bug?打开 www.tp-link.com.cn 官方网站,试图寻找新版固件,结果发现无更新。
  9. 也许有同病相怜的?Google 发现一个帖子:[晒单帖]这个东西有BUG,我已经向官方反应了,官方发给我一个测试版的固件。太尼玛强大了,随机固件居然有这么严重的 bug,而且居然没有第一时间推出更新,而且居然得客户去咨询才通过电子邮件发给客户,这是什么样的产品,什么样的公司,什么样的服务啊?
  10. 准备刷新下载的 111121 版固件,发现固件升级方式居然是 tftp,用 web 上传固件会死啊?
  11. 折腾了一会儿配置文件,把 Lion 自带的 tftpd 跑起来了,升级固件开始很顺利,但是到 100% 后直接变成页面无法打开了,路由器会重启,但是启动后还是老版本固件。
  12. 重复上述操作,结果一致。
  13. 默默的把自己的智商降低到和 TP-LINK 一个级别,同时目光投向了压缩包里面一个名叫 tftpd32.exe 的文件。
  14. 把路由器,固件和 tftpd32.exe 都折腾到给我妈玩儿游戏的 Win7 笔记本上,升级终于成功了。。。
  15. 拿回我的台式机旁边,重新设置 Client 模式,成功获取 IP 地址。

我实在是不知道该怎么吐槽 TP-LINK 了,相信大家都有自己的判断,我只求这篇 blog 可以帮到遇到同样问题的用户就好。下面是个压缩包,内含 TL-WR710N 111121 测试版固件,以及出厂时候的 110928 版固件,测试版固件万一出现问题可以回滚。

TL-WR710N-FW-110928-111121.zip

2012.03.21 UPDATE:今天突然发现虽然现在 WR-710N 可以做网桥连接网络,但是貌似无法和同网段内其他设备通讯,直接后果就是没法使用我网络上的打印机和扫描仪了。所以只能换回 Airport Express,然后观察特破林克什么时候才能出一个靠谱的驱动吧。

pic via

Posted in 我的慵懒生活 | Tagged , , , | 10 Comments

把 E4200 变成一个 OpenVPN 网关

E4200

前一段时间以很便宜的价格($60)入手了一个官翻版 Cisco Linksys E4200 v1 路由器,准备作为 OpenVPN 的客户端网关为家里提供一个美国 IP,今天有时间折腾了一下,非常顺利就成功了,简单记录一下过程。

首先是固件选择,肯定得用第三方固件,之前一直用 DD-WRT,但是觉得有些臃肿,所以这次改用 Tomato 的一个 fork:TomatoUSB,这个分支加入了 USB 支持等新特性,已经有支持 E4200 的版本,而且有带 OpenVPN 的版本。主流 Linux 发行版中配置 OpenVPN 的方法请参考这篇文章

我选择的是 tomato-E4200USB-NVRAM60K-1.28.20111009MIPSR2-beta-tomato-RT-N-GIT-VPN.bin,从名字就可以看出是基于 2.6 Kernel,带有 USB 和 VPN 支持的版本。 直接在 web 管理界面的升级固件里面选择下载的 .bin 文件,确认即可,升级过程大概需要2分钟。

e4200-tomatousb-openvpn-client-5

路由器重启完毕后之前的 IP 和 DHCP 等设置还在,直接用浏览器打开 web 界面就可以看到 TomatoUSB 了,在左侧菜单中选择 VPN Tunneling – Client,可以保存两个服务器的配置文件,一共有四个标签页。

e4200-tomatousb-openvpn-client-1

第一个 Basic,可以选中连接外网后自动连接 ,Interface Type 等按照自己的 OpenVPN 服务器设置即可,Create NAT on tunnel 也需要勾上。

Continue reading

Posted in 我的工作学习 | Tagged , , , , | 10 Comments