普通视图

发现新文章,点击刷新页面。
昨天以前首页

在 Proxmox VE 上使用 LXC 建置 UU 加速器

作者 櫻川 浅羽
2022年8月24日 02:39
  1. 入手 Linksys WRT1900AC 作爲 AP,刷 DD-WRT 固件
  2. 闖入聯通定製烽火 HG220G-U(WO-36)
  3. 也許是最折騰的(隨身)迷你伺服器:計劃
  4. 也許是最折騰的(隨身)迷你伺服器:軟體
  5. 也許是最折騰的(隨身)迷你伺服器:裝機
  6. 在國科大(UCAS)宿舍配置 IPv6 穿透
  7. 斐訊 K3 上車,開啓 Telnet、刷已 Root 版官方固件和 Merlin
  8. 使用 bind9 建置混合 DNS(Response Policy Zone)
  9. 斐訊 K2T 開箱與動手艹(動手玩)
  10. Huawei B315s-936 4G LTE CPE 開箱與動手玩
  11. 透過 VLAN 從不同出口獲得 IPv4/IPv6 地址構建雙棧網路
  12. 關於半夜艹貓的這檔事:中興 ZTE ZXHN F677V2 ONT 設定橋接
  13. 修復 OpenWRT 上 Clash(OpenClash)影響 Port Forwarding 的問題
  14. 在 OpenWRT 上正確開啓網易 UU 加速器
  15. 在 Proxmox VE 上使用 LXC 建置 UU 加速器

網易的 UU 路由器插件支援 Merlin、小米路由器和 OpenWRT。但是如果沒有支援的路由器如何使用呢?開 VM 是最簡單的方式,先前也分享過一些技巧。容器作法也已經有現成的工作可以使用。不過在 Proxmox VE 上還可以使用 Linux 容器單獨運行 OpenWRT。

建立 LXC 容器

OpenWRT 現時已經提供了官方的 rootfs,直接下載就可以使用了。不過由於 Proxmox VE 上的 LXC 作業系統類型未有預設 OpenWRT,所以需要在命令列下建立容器:

export CTID=2000
pct create ${CTID} \
    /path/to/storage/template/cache/openwrt-21.02-amd64.tar.xz \
    --hostname openwrt-uu
    --rootfs local-lvm:1 \
    --cores 1 \
    --memory 512 \
    --arch amd64 \
    --ostype unmanaged \
    --unprivileged 0
pct set ${CTID} --net0 name=eth0,bridge=vmbr0,ip=manual

注意:由於容器後續需要使用 TUN 裝置,所以需要是特權容器--unprivileged 0)。至於其他部分則是看需求而定。

然後爲容器新增 TUN 裝置,編輯 /etc/pve/lxc/${CTID}.conf 加入以下行:

lxc.cgroup2.devices.allow: c 10:200 rwm
lxc.hook.autodev: sh -c "modprobe tun; cd ${LXC_ROOTFS_MOUNT}/dev; mkdir net; mknod net/tun c 10 200; chmod 0666 net/tun"

此時容器已經準備好,可以啓動了。

設定網路

啓動容器後,OpenWRT 預設是從 DHCP 獲得 IP 位置的,並且預設的網路介面劃定爲 WAN 區域。由於 UU 加速器需要 br-lan 接口,爲了方便後續設定,編輯 /etc/config/network 以調整 OpenWRT 的網路設定:

config interface 'loopback'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'
	option device 'lo'
	option ifname 'lo'

config interface 'lan'
	option type 'bridge'
	option ifname 'eth0'
	option proto 'static'
	option ipaddr '{{UU_LAN_IPADDR}}'
	option gateway '{{UU_LAN_GATEWAY}}'
	option netmask '{{UU_LAN_NETMASK}}'

同時編輯 /etc/config/dhcp 關閉掉接口上的 DHCP:

config dhcp 'lan'
        option interface 'lan'
        option ignore '1'
        option ra_management '0'

重新啓動容器,然後安裝 UU 路由器插件及第三方的 LuCI 管理介面:

opkg update
opkg install ca-certificates kmod-tun
opkg install uugamebooster luci-app-uugamebooster luci-i18n-uugamebooster-zh-cn

出於保險考慮,可以禁用掉防火牆之類的無關服務:

/etc/init.d/firewall disable
/etc/init.d/odhcpd disable

最後開啓 UU 加速器:

uci set uuplugin.uuplugin.enabled='1'
/etc/init.d/uuplugin enable
/etc/init.d/uuplugin start

使用 UU 加速服務

在 DHCP 伺服器上,爲遊戲主機下發特定的設定檔,將閘道器和 DNS 設定為容器的 IP。同時,在手機上的「UU 主機加速」應用程式中綁定路由器插件前,需要將手機閘道器和 DNS 也設定爲容器的 IP;綁定完畢後,可以改回原來的設定。設定完成後,打開「UU 主機加速」應用程式即可看到裝置出現,正常操作加速即可。

第三方的 LuCI 管理介面
第三方的 LuCI 管理介面

閱讀更多

從 DSM 6 更新到 DSM 7(DS119j/DS120j)

作者 櫻川 浅羽
2022年5月21日 22:53

DSM 7 已經釋出一段時間了,但是大量的新功能都屬於「買多一臺」系列,對浅羽來說不是很有吸引力。不過考慮到更好看的用戶介面以及整合的 Synology Drive,趁得閒還是升級一下好了。

Entware 環境

Synology 暫未向 ARM 機種提供 Container Station,但浅羽需要使用一些第三方套件,因此只能透過 Entware 安裝。浅羽的 Entware 是在 DSM 6 時安裝的,更新至 DSM 7 後可以繼續使用,無需額外操作。更新完成後,iPKGui 等相關套件會提示損壞,但是無需理會;而且 opkg 是可以正常使用的。

由於 Easy Bootstrap Installer 需要使用 root 權限,所以暫時無法正常使用。不過仍然可以在 DSM 7 上手動安裝

網路影像錄影機功能

剛完成更新時,Surveilance Station 還停留在版本 8 上,套件中心也未能檢測到新版本,於是只好自己下載 SPK 包安裝。DSM 7 中似乎取消了 armada37xx 架構,安裝 armv8 的 SPK 包即可。

Surveillance Station 9 更新了 DSM 7 風格的用戶介面,並且整合了實時監看和回放功能,不過需要搭配 2.0 版本以上的 Surveillance Station Client。新版本的 Client 的用戶介面也變得更加現代了。但更新到 DSM 7.1 後,H.265 的相關授權轉移到 Advanced Media Extensions 內,並且要求登入 Synology 賬戶後才能安裝 HEVC codec pack。如果有需要使用 H.265 編碼但介意登入 Synology 的賬戶的話謹慎更新。

官方套件

有部分套件未能隨 DSM 更新而更新,浅羽這邊就遇到 Cloud Sync 一例。這些套件在套件中心中顯示爲「已安裝」,但無法開啓。從套件中心中移除(選擇保留資料庫)、重新安裝以後,就可以正常開啓、使用了。

聊聊 nostr 和 审查

作者 陈皓
2023年2月3日 15:46

这两天在网络上又有一个东西火了,Twitter 的创始人 @jack 新的社交 iOS App  Damus 上苹果商店(第二天就因为违反中国法律在中国区下架了),这个软件是一个去中心化的 Twitter,使用到的是 nostr – Notes and Other Stuff Transmitted by Relays 的协议(协议简介协议细节),协议简介中有很大的篇幅是在批评Twitter和其相类似的中心化的产品,如:MastodonSecure Scuttlebutt 。我顺着去看了一下这个协议,发现这个协议真是非常的简单,简单到几句话就可以讲清楚了。

通讯过程

  • 这个协议中有两个东西,一个是 client,一个是 relay,client 就是用户社交的客户端,relay 就是转发服务器。
  • 用户不需要注册,用户只需要有一个密钥对(公钥+私钥)就好了,然后把要发的信息做签名,发给一组 relays
  • 然后你的 Follower 就可以从这些 relays 上订阅到你的信息。

技术细节摘要

  • 技术实现上,nostr 使用 websocket + JSON 的方式。其中主要是下面这么几个指令
    • Client 到 Relay主要是下面这几个指令:
      • EVENT。发出事件,可以扩展出很多很多的动作来,比如:发信息,删信息,迁移信息,建 Channel ……扩展性很好。
      • REQ。用于请求事件和订阅更新。收到REQ消息后,relay 会查询其内部数据库并返回与过滤器匹配的事件,然后存储该过滤器,并将其接收的所有未来事件再次发送到同一websocket,直到websocket关闭。
      • CLOSE。用于停止被 REQ 请求的订阅。
    • Relay 到 Client 主要是下面几个指令:
      • EVENT。用于发送客户端请求的事件。
      • NOTICE。用于向客户端发送人类可读的错误消息或其他信息
  • 关于 EVENT 下面是几个常用的基本事件:
    • 0: set_metadata:比如,用户名,用户头像,用户简介等这样的信息。
    • 1: text_note:用户要发的信息内容
    • 2recommend_server:用户想要推荐给关注者的Relay的URL(例如wss://somerelay.com

如何对抗网络审查

那么,这个协议是如何对抗网络审查的?

  • 识别你的身份是通过你的签名,所以,只要你的私钥还在,你是不会被删号的
  • 任何人都可以运行一个或多个relay,所以,就很难有人控制所有的relay
  • 你还可以很方便的告诉其中的 relay 把你发的信息迁到另一个 relay 上
  • 你的信息是一次发给多个relay的,所以,只要不是所有的热门realy封了你,你就可以发出信息
  • 每个relay的运营者都可以自己制定规则,会审查哪些类型内容。用户据此选择即可。基本不会有一个全局的规则。
  • 如果你被全部的relay封了,你还是可以自建你的relay,然后,你可以通过各种方式告诉你身边的人你的relay服务器是什么?这样,他们把这个relay服务器加到他们的client列表中,你又可以从社死中复活了。

嗯,听起来很简单,整个网络是构建在一种 “社区式”的松散结构,完全可能会出现若干个 relay zone。这种架构就像是互联网的架构,没有中心化,比如 DNS服务器和Email服务器一样,只要你愿意,你完全可以发展出自己圈子里的“私服”。

其实,电子邮件是很难被封禁和审查的。我记得2003年中国非典的时候,我当时在北京,当时的卫生部部长说已经控制住了,才12个人感染,当局也在控制舆论和删除互联网上所有的真实信息。但是,大家都在用电子邮件传播信息,当时基本没有什么社交软件,大家分享信息都是通过邮件,尤其是外企工作的圈子,当时每天都要收很多的非典的群发邮件,大家还都是用公司的邮件服务器发……这种松散的,点对点的架构,让审查是基本不可能的。其实,我觉得 nostr 就是另外一个变种或是升级版的 email 的形式

如何对抗Spam和骗子

但是问题来了,如果不能删号封人的话,那么如何对抗那些制造Spam,骗子或是反人类的信息呢?nostr目前的解决方案是通过比特币闪电网络。比如有些客户端实现了如果对方没有follow 你,如果给他发私信,需要支付一点点btc ,或是relay要求你给btc才给你发信息(注:我不认为这是一个好的方法,因为:1)因为少数的坏人让大多数正常人也要跟着付出成本,这是个糟糕的治理方式,2)不鼓励那些生产内容的人,那么平台就没有任何价值了)。

不过,我觉得也有可以有下面的这些思路:

  • 用户主动拉黑,但很明显这个效率不高,而且体验不好
  • 社区或是同盟维护一个黑名单,relay定期更新(如同email中防垃圾邮件也是这样搞的),这其实也是审查。
  • 防Spam的算法过滤垃圾信息(如同email中干的),自动化审查。
  • 增加发Spam的成本,如: PoW 工作量证明(比特币的挖矿,最早也是用于Email),发信息要花钱(这个对正常用户伤害太大了)等。
  • ……

总之,还是有相应的方法的,但是一定没有完美解,email对抗了这么多年,你还是可以收到大量的垃圾邮件和钓鱼邮件,所以,我觉得 nostr 也不可能做到……

怎么理解审查

最后,我们要明白的是,无论你用什么方法,审查是肯定需要的,所以,我觉得要完全干掉审查,最终的结果就是一个到处都垃圾内容的地方!

我理解的审查不应该是为权力或是个体服务的,而是为大众和人民服务的,所以,审查必然是要有一个开放和共同决策的流程,而不是独断的

这点可以参考开源软件基金会的运作模式。

  • 最底端的是用户(User)参与开源社区的使用并提供问题和反馈。
  • 用户在使用过程中了解项目情况后贡献代码和文档就可以晋升为贡献者(Contributors),
  • 当贡献者提交一定数量贡献之后就可以晋升为提交者(Committers),此时你将拥有你参与仓库的代码读写权限。
  • 当提交者Committers在社区得到认可后,由项目管理委员会(PMC)选举并产生PMC成员(类似于议员),PMC成员拥有社区相关事务的投票、提名和共同决策权利和义务。

注意下面几点

  • 整个社区的决策者,是要通过自己贡献来挣到被选举权的。
  • 社区所有的工作和决定都是要公开的。
  • 社区的方向和决策都是要投票的,PMC成员有binding的票权,大众也有non-binding的投票权供参考。
  • 如果出现了价值观的不同,那么,直接分裂社区就好了,不同价值观的人加入到不同的社区就好了

如果审查是在这个框架下运作的话,虽然不完美,但至少会在一种公允的基础下运作,是透明公开的,也是集体决策的。

开源软件社区是一个很成功的示范,所以,我觉得只有技术而没有一个良性的可持续运作的社区,是不可能解决问题的,干净整齐的环境是一定要有人打扫和整理的

 

欢迎关注我 npub1w6r99545cxea6z76e8nvzjxnymjt4nrsddld33almtm78z7fz95s3c94nu
欢迎关注我 npub1w6r99545cxea6z76e8nvzjxnymjt4nrsddld33almtm78z7fz95s3c94nu

(全文完)

(转载本站文章请注明作者和出处 酷 壳 – CoolShell ,请勿用于任何商业用途)

The post 聊聊 nostr 和 审查 first appeared on 酷 壳 - CoolShell.
❌
❌