安装lxc版openwrt
我是pve7.4
截止目前,在这里下载
我下载的是 openwrt-koolshare-router-v3.2-r19470-2f7d60f0e5-x86-64-generic-rootfs.tar.gz
这步不多解释吧
在pve的控制台中,输入类似命令,有些地方要改
模板位置: local:vztmpl/openwrt-koolshare-router-v3.2-r19470-2f7d60f0e5-x86-64-generic-rootfs.tar.gz
--rootfs local-lvm:2
安装系统的位置,后面那个数字是磁盘大小,单位为GB
--hostname openwrt-side
主机名称
--cores 2
核心数,一般1核就够了
--memory 1024
内存,一般512就够了
-net0 bridge=vmbr0,name=eth0
网卡
1 |
|
如果还需要拨号或者直通网卡等功能,还得添加其它配置,由于我只是做旁路由,就没去搞了,有需要的百度
节点-》选择你新增的虚拟机 => 选项 =》 功能 。。。
比如我几乎全选了 [fuse=1,mount=nfs;cifs,nesting=1]
这步可略过,只是查看配置文件
cat /etc/pve/lxc/${LXC_ID}.conf
结果大致为1
2
3
4
5
6
7
8
9
10
11arch: amd64
cores: 2
features: fuse=1,mount=nfs;cifs,nesting=1
hostname: openwrt-side
memory: 1024
net0: name=eth0,bridge=vmbr0,hwaddr=CE:A1:05:57:F6:4A,type=veth
ostype: unmanaged
rootfs: local-lvm:vm-901-disk-0,size=2G
swap: 0
lxc.cgroup2.devices.allow: c 10:200 rwm
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file
启动后,第一步改网络,在pve中,点 ${LXC_ID} 的控制台
vim /etc/config/network
修改lan下面的ip
改完后,重启网络service network restart
或重启虚拟机reboot
然后就可以在浏览器中操作了
默认密码是koolshare
tiktok1
bash <(curl -s https://raw.githubusercontent.com/lmc999/TikTokCheck/main/tiktok.sh)
netflix disney chatgpt 等1
bash <(curl -s https://raw.githubusercontent.com/lmc999/RegionRestrictionCheck/main/check.sh)
在nginx上突然出现的一个反向代理https的错误,特此记录
本来就是一个简单的反向代理,用来代理openai的api,今天之前用得好好的,重启了nginx后,就不能用了
真实域名已隐藏
1 | server { |
http请求报502
nginx日志报错,大致是这样
1 | 2023/04/07 10:53:24 [error] 886#886: *21 SSL_do_handshake() failed (SSL: error:0A000410:SSL routines::sslv3 alert handshake failure:SSL alert number 40) while SSL handshaking to upstream, client: 151.61.223.142, server: openai.your.domain, request: "GET /v1/chat/completions HTTP/1.1", upstream: "https://104.18.7.192:443/v1/chat/completions", host: "openai.your.domain" |
在location里加一句proxy_ssl_server_name on;
,再重启nginx就可以了,如:
1 | location / { |
那么,从日志看,proxy_set_header Host api.openai.com;
这一句是不是没有生效呢。再研究吧
]]>
chatgpt plus或者api需要付费了,尝试一下depay
首先申明,任何机构都可能破产或者跑路,包括美国才破产的一些银行
所以请明确考虑自己的用途和能承担的风险
比如本人,之前只有国内发的visa卡,但目前chatgpt不支持支付,故申请一个depay试试
然后,我又有一些usdt,也算多了一个出金方式
由于开销少,需要支付时,再充个几刀,用完就行了
注意,最少充值5usdt,否则不到账
注意,最少充值5usdt,否则不到账
注意,最少充值5usdt,否则不到账
- | Lite | 标准 | 高级 | 白金 | 黑金 |
---|---|---|---|---|---|
开卡费(usdt) | 10 | 0 | 10 | 50 | 活动空投 |
月费(usdt) | 2 | 1 | 0.5 | 0 | 0 |
额度(usd) | 20000 | 20000 | 50000 | 200000 | 无限 |
充值费率(%) | 2 | 1.35 | 1.2 | 1 | 0.8 |
其中:
lite卡不用Kyc。对隐私有需求的可选择
黑金不能直接开,只能活动空投。目前活动为拉新20个才有资格参加空投
标准卡,手续费最少收1刀
卡的有效期是3年
可以直接登网页申请
或者app注册
苹果需要海外账号,直接搜索depay
.
app注册,可选填邀请码助功,谢谢: 268811
注册完成后,可以隐私非敏感用户可以选择kyc先,即类似于实名认证。
就上传个身份证照片和录一段念随机数字的视频
,个人认为尺度不大
隐私敏感用户可以跳过此步骤,开lite卡,只是贵点
切换到首页,开卡
考虑到我本人:
目前我选择开高级卡,10刀开费,每月0.5
有效期间内
总费用 = 开卡费 + 月费 36 + 总充值 充值费率
标准或lite卡
ss | ss |
---|---|
标准卡 | 0 + 36 + 1.35 / 100 x 总费用 |
高级卡 | 10 + 18 + 1.2 / 100 x 总费用 |
白金卡 | 50 + 0 + 1 / 100 x 总费用 |
标准卡无论固定费和费率都高于高级卡
高级卡和白金卡的分水岭在 11000usdt
即期间内 充值< 11000usdt的,选高级卡, 充值> 11000usdt的,选白金卡
损失余额和开卡费
余额:
考虑到充值费率的最低消费,标准卡的余额不会小于高级卡
开卡费:
高级的10刀与白金的50刀
大致为app里在支持的每条链上为每个用户分配了一个钱包,通过该链转到地址就存入钱包了。
然后再在app里兑换成usd
就可以交易了
大致流程为
(其它钱包地址的虚拟币)-> depay钱包的usdt -> usd -> mastercard ->(消费,绑支付宝京东微信等)
暂无
暂无
app注册,可选填邀请码助功,谢谢: 268811
在vps上装warp
https://p3terx.com/archives/cloudflare-warp-configuration-script.html
不知道
下面的 git.io/warp.sh
可以替换成这个链接或者这个链接
1 | bash <(curl -fsSL git.io/warp.sh) d |
1 | # 自动配置 WARP WireGuard IPv4 网络(IPv4 出站流量走 WARP 网络) |
1 | # 查看 WARP 脚本子命令列表 |
abstract of this post
content of this post
1 |
|
https://github.com/vernesong/OpenClash/tree/core/master
分别去该目录下的 dev
,meta
,premium
下下载自己相应系统的内核
将下载的三个文件解压到 /etc/openclash/core/
,分别命令为 clash
,clash_meta
,clash_tun
这一步可以在路由的luci页面操作
服务 =》 openclash => 配置管理 => 上传文件类型, 分别选取相应的类型
]]>内网有ntp的需求,搭一个ntp服务。给win10 增加一个ntp服务器地址
我电脑为win10专业版,如发现有不一样,请去网上搜索你的版本对应的操作
注意,需要管理员权限
将以下命令中的SPACE_LIMITED_NTP_SERVERS
改成ntp服务器地址就可以了
1 | w32tm /config /update /manualpeerlist:SPACE_LIMITED_NTP_SERVERS /syncfromflags:manual /reliable:yes |
微软官网的,不深究可以用不看
Configure NTP on Windows Server
]]>
内网有ntp的需求,搭一个ntp服务
我电脑为win10专业版,如发现有不一样,请去网上搜索你的版本对应的操作
win10系统直接在系统的搜索框输入regedit
就弹出来相关程序了
还可以在运行
、cmd
、powershell
里面直接输入
1 | regedit |
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
的AnnounceFlags
有情提示,上面那一串路径,是可以复制下来,粘贴在注册表编辑器的地址栏的,注意地址栏上的计算机
三个字别覆盖了
我电脑上 AnnounceFlags
的值为10
现修改 AnnounceFlags
的值为5
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
的Type
我电脑上 AnnounceFlags
的值为NTP
现修改 AnnounceFlags
的值为NTP
这步看来不用改
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer
的Enabled
我电脑上 Enabled
的值为0
现修改 Enabled
的值为1
以下两种方式,二选一
以管理员身份打开powershell
(左下角开始点鼠标右键,选Windows Powershell(管理员)
)
依次输入以下命令
1 |
|
在运行(WIN+R快捷键)
或windows搜索框
或cmd
或powershell
等中输入services.msc
以打开服务界面
找到Windows Time并双击
点击下面的启动,确保能正常启动
设置启用类型为自动
后,然后点击确定
测试方式有很多,写一种简单通用的方法,使用ntp-check
为了方便,我本人直接把它下载下来了,也可以直接在这里下载 下载地址
ntp-check是一个简单的支持ntp的客户端。操作起来也很简单,只需要输入ntp服务的地址,然后点击test就可以了
有时一次测试不成功,可以多点几次
测试本机,ip可以以输入127.0.0.1
局网内测试,则输入本机在局域网内的ip,如果测试失败,可以考虑防火域问题
也可以
转自
ntp.ntsc.ac.cn 国家授时中心网络授时域名(不建议使用)
国家授时中心服务器IP:
210.72.145.44
阿里云公网NTP服务器:
ntp.aliyun.com
ntp1.aliyun.com
ntp2.aliyun.com
ntp3.aliyun.com
ntp4.aliyun.com
ntp5.aliyun.com
ntp6.aliyun.com
ntp7.aliyun.com
腾讯云NTP服务器:
time1.cloud.tencent.com
time2.cloud.tencent.com
time3.cloud.tencent.com
time4.cloud.tencent.com
time5.cloud.tencent.com
国内一些大学NTP时间源服务器:
s1a.time.edu.cn 北京邮电大学
s1b.time.edu.cn 清华大学
s1c.time.edu.cn 北京大学
s1d.time.edu.cn 东南大学
s1e.time.edu.cn 清华大学
s2a.time.edu.cn 清华大学
s2b.time.edu.cn 清华大学
s2c.time.edu.cn 北京邮电大学
s2d.time.edu.cn 西南地区网络中心
s2e.time.edu.cn 西北地区网络中心
s2f.time.edu.cn 东北地区网络中心
s2g.time.edu.cn 华东南地区网络中心
s2h.time.edu.cn 四川大学网络管理中心
s2j.time.edu.cn 大连理工大学网络中心
s2k.time.edu.cn CERNET桂林主节点
s2m.time.edu.cn 北京大学
苹果NTP服务器:
time.asia.apple.com
微软NTP服务器(WINDOWS系统常用):
time.windows.com
其他NTP服务器:
cn.ntp.org.cn
苹果提供的公共NTP服务:
time1.apple.com
time2.apple.com
time3.apple.com
time4.apple.com
time5.apple.com
time6.apple.com
time7.apple.com
Google(谷歌)提供的NTP服务器:
time1.google.com
time2.google.com
time3.google.com
time4.google.com
对于有些不能上网的机器来说,要安装apt仓库的软件又多了个选择。apt-offline
准备写,不慌
准备写,不慌
准备写,不慌
]]>解决win10 lstc上不能用smb(omv)的问题,如果其它情况的smb客户端不能连服务器的,可以参考
总之就是连不上,没注意看报错信息和日志
我大致改了两个地方
我开始想到可能是没打开这个功能
打开资源管理器(或任意一个文件夹,或我的电脑),在地址栏输入 控制面板\程序\程序和功能
点击左侧启用或关闭windows功能
找到 smb
开头的选项,钩选
单这一步完成后,会重启,并且没用。哈哈哈哈
参考:
https://forum.openmediavault.org/index.php?thread/45178-windows-10-ltsc-and-omv/
打开注册表编辑器
可以在开始菜单中输入 regedit
可以按 win+r运行 regedit
可以在powershell中输入 regedit
定位到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters
把这一段复制下来
在注册表编辑器的顶部地址栏粘贴
修改右侧AllowInsecureGuestAuth
的值为1
如果右侧没有,可以新建一个
类型为 Dword 32位
双击,然后将值改为1
应该就正常了
用choco来管理windows的一些软件,方便整理或写到一个脚本里。偶尔重装一次,也方便迅速搭好自己熟悉的环境
官网
理论上只用官网提供的一句命令就搞定,参见官网
但是一般情况要做一些配置
此为我本人常用的方式
这个应该不用多说吧
比如我要默认存放到D
盘的 Program Files
下
在powershell
里运行regedit
打开注册表编辑器
修改 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
下的ProgramFilesDir
和ProgramFilesDir (x86)
的值
ProgramFilesDir
的值改为:D:\Program Files
ProgramFilesDir (x86)
的值改为:D:\Program Files (x86)
改完后关闭注册表编辑器
在powershell
中依次输入命令。
首字符为 # 的不输入……
1 | # 1. 根据自身情况改变安装路径,可跳过 |
到此,choco 就安装完成了,后面不用看了,啰嗦。。。。。。
可以愉快的install各种软件了
1 | choco install -y virtualbox |
可以去官方仓库
或者在命令行
1 | choco find virtualbox |
可以在系统的高级设置里面设置,也可以用命令行powershell
设置
要安装的位置,包括choco本身和choco安装的软件
默认为 c:\tools
如设成 D:\ChocoApp
http代理,你懂的
除了choco的安装位置外,choco还有可能安装的是软件的安装包,choco安装完成后,还要再解包
这里有点绕,就是绿色软件和安装包的问题。
即修改windows的默认安装位置
默认位置为
C:\Program Files
C:\Program Files (x86)
ChocolateyInstall
相当于管的是绿色软件的目录,而本栏是改安装包的的安装目录
现在开始修改:
比如我要默认存放到E
盘,打开注册表,把 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
下的:
ProgramFilesDir
的值改为:E:\Program Files
ProgramFilesDir (x86)
的值改为:E:\Program Files (x86)
另外,还有一种方法修改
理论上只用官网提供的一句命令就搞定
但是我们一般要先改安装路径,或者使用代理,所以先设环境变量
步骤如下
以管理员
打开powershell
依次输入以下命令
1 | # 1. 根据自身情况改变安装路径,可跳过 |
ps, 以下的app,可以一次性写完,比如 choco install -y docker-cli everything ….
1 | choco install -y -y anydesk |
debian默认情况下,在登录界面按下ctrl + alt + del 会重启,为防止误操作,在生产环境要把它禁止掉
三句命令
1 | sudo sed -i 's/^.*CtrlAltDelBurstAction=.*$/CtrlAltDelBurstAction=none/g' /etc/systemd/system.conf |
遇到问题就去搜
搜出的结果大概是以一个空的ctrl-alt-del.target (/etc/systemd/system/ctrl-alt-del.target) 覆盖掉原有的ctrl-alt-del.target (/usr/lib/systemd/system/ctrl-alt-del.target)
操作也很简单,两句命令就搞定了
1 | sudo systemctl mask ctrl-alt-del.target |
事实上,我之前也是这么做的,当然也能解决问题
直到有一天,有个人一直连续按了 ctrl+alt+del n下
系统大致输出了以下内容后,重启了…
1 | acpi - message at shutdown: watchdog did not stop |
我试了一下,应该是按8下就会出现上述问题
然后,又找到了另一个解决方法
将 /etc/systemd/system.conf
里的
CtrlAltDelBurstAction
项的值改成 none
https://www.stigviewer.com/stig/red_hat_enterprise_linux_8/2021-03-04/finding/V-230531
1 | sudo sed -i 's/^.*CtrlAltDelBurstAction=.*$/CtrlAltDelBurstAction=none/g' /etc/systemd/system.conf |
暂无
content of this post
OpenAi PluginOpenAi Rule]]>1 | echo "root" | docker secret create mysql57_root_password - |
1 | docker service create --replicas 2 --secret mysql57_root_password --name hello_with_secret alpine ping docker.com |
直接通过条件打印出mysql57_root_password
1
2docker container exec `docker ps --filter name=hello_with_secret -q` cat /run/secrets/mysql57_root_password
# root
把--secret
写成这种格式 source=mysql57_root_password,target=root_password
source 和 target 很好理解
1 | docker service create --replicas 2 --secret source=mysql57_root_password,target=root_password --name hello_with_secret2 alpine ping docker.com |
1 | docker secret rm mysql57_root_password |
由于有容器在使用,所以删除失败。那么,我们可以先让容器不再使用该secret
update 命令,后面再说,可以更改一个service的几乎所有属性。
这里用update命令来删除该service对密钥 mysql57_root_password 的使用
1 | docker service update --secret-rm mysql57_root_password hello_with_secret |
此时即可以删除secset了mysql57_root_password
1 | docker secret rm mysql57_root_password |
就是当一个稍微私密一点的env用
]]>接上文,本文一共在虚拟机上运行了三个节点。它们都是管理节点。然后对service做了一些简单的增删查操作
1 | docker node ls |
在这3个节点上,本文就要开始做多节点方面的操作
什么是task
大意就是服务的执行者,一个服务通过多个task来执行服务
swarm的task之于service相当于:
面向对像的object之于class;
docker的container之于images;
一个服务可有多个task,并且通过内部算法,部署在一个或多个node上
处理各类任务的,也是这些task
设置task个数的参数为replicas
,即复制品或副本…
那么我们来试一下
现在,我们一共3个节点,创建服务时将replicas
设为2
分别按以下条件指定--constraint
参数
由于遇到一些问题,此时再次查看一下node数量
1 | docker node ls |
swarmworker2因为遇到了问题,前后执行了两次leave,导致id发生了变化。从status
看,只有3个是ready
的
1 | service create --replicas 2 --name hello_without_constraint alpine ping docker.com |
经多次设置,task应该是通过某种算法均匀分布在所有node上的。表现为尽可能给所有节点平滩。据经验,分配方式肯定可以配置的,比如设权重之类的
1 | docker service create --replicas 2 --constraint node.hostname==swarmworker1 --name hello alpine ping docker.com |
可见,分配到指定hostname的节点上了
多个节点的hostname理论上是可以重复的,这个有空再说吧
节点类型就两种,worker和manager
那么本次我们先将worker2降级成worker类型,那么,有两个管理节点和一个工作节点
1 | docker node demote swarmworker2 |
键入以下命令将服务的task分布在管理节点
1 | docker service create --replicas 4 --constraint node.role==manager --name hello_by_role alpine ping docker.com |
就不多做了,内容都差不多。。官网看吧
https://docs.docker.com/engine/swarm/services/#placement-constraints
一般情况,我们用http来提供无状态的服务,就会涉及到端口的暴露和分布的问题
1 | ## 目前有两个节点,下面我们建一个replicas=1的nginx服务,暴露端口为8080,容器内部端口为80,即8080转发到80 |
即内部有一套流量转发机制
引用官方
https://docs.docker.com/engine/swarm/services/#publish-ports
You don’t need to know which nodes are running the tasks; connecting to port 8080 on any of the 10 nodes connects you to one of the three nginx tasks. You can test this using curl. The following example assumes that localhost is one of the swarm nodes. If this is not the case, or localhost does not resolve to an IP address on your host, substitute the host’s IP address or resolvable host name.
大意是访问任何节点的该端口都会转发运行该服务的task的节点上(官方是10个节点,在3个节点上运行nginx,即–replicas 3)。
另外,我发现个问题
由于第3个节点swarmworker2的没有配置代理,也没有提前去pull image
当我在执行 docker service create ..... --replicas=2 ......
的时候,恰好给swarmworker2分配了一个task
1 | docker service create --replicas 2 --name hello_without_constraint alpine ping docker.com |
这个问题我我也去了解了一下,就是节点只会用自己本地的image,不会用其它节点的。为什么不设计成节点共享呢,哪怕给个命令手动互相copy也行啊。
尤其对一些用于本地测试的私有image而言来说,就必须把image publish到仓库才行
怎么解决呢,要么手动 export/import
要么就自己搭个中转仓库
具体的情况,再搜搜吧
既然已经出了这档问题,顺便测试一下,直接将该节点剔除,看是什么反应
1 | # 剔除之前 |
由此可见 swarmworker2 关闭了,又从swarmmanger 启动了一个task
在多个节点中:
要运行指定个数的task变得简单
对于使用网络端口对外作为服务的task,不用考虑task具体运行在哪些节点上,每个节点都能访问到task
如果某些task因为某些原因挂掉了,系统会自动帮忙重新运行新的task,并且在此节点池内,总个数不会变化
考虑到特定情况,将指定task运行在符合条件的node上也很容易
]]>接上文,原本有一个管理节点。现新增两个vm,分别加入原管理节点。一共三个node
将vm的hostname设为 swarmworker1
和swarmworker2
,hostname 很重要,以后会用
直接作为worker加入前面建立的节点,输入前面初始化节点时出现的命令
1 | docker swarm join --token SWMTKN-1-0mzmp1o6vufmqmpo8rvyrg2kzvlakj94gweg6drqunzhmvvmxr-6i80acmunj32z9xqw1jbbmeln 192.0.0.30:2377 |
什么是task
大意就是服务的执行者,一个服务通过多个task来执行服务
swarm的task之于service相当于:
面向对像的object之于class;
docker的container之于images;
一个服务可有多个task,并且通过内部算法,部署在一个或多个node上
处理各类任务的,也是这些task
设置task个数的参数为replicas
,即复制品或副本…
那么我们来试一下
现在,作为工作节点,我们来测试一下能不能管理创建服务
1 | docker service create --replicas 1 --name hello_world_in_worker1 alpine ping docker.com |
非管理节点不能干这些事,想要操作
要么在管理节点运行此命令
要么在管理节点升级此工作节点为管理节点
1 | docker node promote swarmworker1 |
再去 swarmworker1查看节点
1 | docker node ls |
另外,这个task貌似不能直接删。可以用update命令来限制单个服务的历史task的个数。超了应该会删
1 | docker swarm update --task-history-limit 5 |
至此,本节点已升级成管理节点,试一下能不能创建服务
1 | ## 在本节点(swarmworker1)运行以下命令 |
管理节点和工作节点都能运行task
工作节点不能操作,甚至不能查,只能用docker ps
等这种本地命令来查看容器的运行情况
用mobaxterm连着ssh,在敲命令行时,突然卡住,什么也做不了。要过很久才能继续敲下一个命令
开始以为网络问题,于是直接用powershell试,发现没有问题
发现是x server功能问题
右上角有个 x-server
的按钮,此时为激活状态。单击它一下,变为非激活状态就再试一下就不卡了
另外,默认情况下,是开启此软件时,会自动打开该功能,可以配置一下关闭此功能
在顶部菜单》Settings》Configuration》X11里,把Automatically start X server at MobaXterm start up
前的钩去掉即可
引用自
]]>
https://docs.docker.com/engine/swarm/swarm-tutorial/create-swarm/
1 | docker swarm init |
由于有两个ip,那么,需要加上--advertise-addr
1 |
|
此时,初始化节点成功。
根据提示,当前为manager节点,如果后续要加一个work节点
1 | docker swarm join --token SWMTKN-1-0mzmp1o6vufmqmpo8rvyrg2kzvlakj94gweg6drqunzhmvvmxr-6i80acmunj32z9xqw1jbbmeln 192.0.0.30:2377 |
如要添加一个管理员,需执行docker swarm join-token manager
打印出相关信息,再打印出的信息加入
按基本法,运行一个hello world
就叫学会了
https://docs.docker.com/engine/swarm/swarm-tutorial/deploy-service/
1 | docker service create --replicas 1 --name helloworld alpine ping docker.com |
查看当前服务
1 | docker service ls |
直接用docker ps 也可以看
1 | docker ps |
visual studio 会在桌面生成一个菜单“使用Visual Studio打开”,有时一个不小心就是点到了。而且没啥用……帮删之
本文以vs2019
亲测,其它版本请自行测试
桌面新建文本文件,编辑之,并拷入以下内容
1 | Windows Registry Editor Version 5.00 |
关闭、保存。
修改文件名扩展名,txt
改为reg
双击,会提示一长串权限文字,点确定
done!!!!
]]>比如这种不带时区的时间 2021-07-02 12:13:14
1 | package main |
返回的是utc时间
可以根据自己程序中的时区,使用 time.ParseInLocation
来解决
1 | package main |
几年过后,硬盘应该换代了。不光是旧换新的问题,而且硬盘大小都可能不一样了。数据也会越来越多
]]>