Something went wrong. You may be connected to a disallowed ISP If youare using VPN, try disabling it. Otherwise try a different Wi-Fi network or data connection。
经过查询发现是我的 vps 服务商只提供网页端 chatgpt 解锁,不支持 app 端。由于 chatgpt 服务也是通过 cloudflare 的 cdn 服务,所以通过将流量转发到 warp 来访问就可以解决问题。
首先需要在服务端安装官方的 warp 命令行工具:warp-cli。
官方教程:https://developers.cloudflare.com/warp-client/get-started/linux/
官方手动添加包仓库教程:https://pkg.cloudflareclient.com/#ubuntu
在命令行输入以下指令来安装第三方仓库并安装包:
# Add cloudflare gpg key
curl -fsSL https://pkg.cloudflareclient.com/pubkey.gpg | sudo gpg --yes --dearmor --output /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg
# Add this repo to your apt repositories
echo "deb [signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflare-client.list
# Install
sudo apt-get update && sudo apt-get install cloudflare-warp
安装好后需要注册一个新账户:
warp-cli registration new
查看当前账户信息:
warp-cli registration show
更换新的 license:
warp-cli registration license xxxxx-xxxxxx-xxxxxx
然后需要设置代理模式,可选有:warp, doh, warp+doh, dot, warp+dot, proxy, tunnel_only。
我只想要它提供一个 socks5 代理端口即可,所以设置为 proxy 模式,它会在本地 40000 端口监听:
warp-cli mode proxy
启动 warp:
warp-cli connect
此时 warp 会在本地 40000 端口建立一个 sock5 代理,只需要将需要转发的流量转发到此端口即可走 warp。并且 warp 会自动配置为 Always On 模式,开机自动运行代理。
查看 warp 当前配置:
# warp-cli settings
Merged configuration:
(derived) Always On: true
(default) Switch Locked: false
(user set) Mode: WarpProxy on port 40000
(Not set) WARP tunnel protocol: Wireguard
(default) Disabled for Wifi: false
(default) Disabled for Ethernet: false
(Not set) Resolve via: cloudflare-dns.com @ [162.159.36.1, 2606:4700:4700::1111]
(Not set) qlog logging: Disabled
(default) Onboarding: true
(API defaults) Exclude mode, with hosts/ips:
10.0.0.0/8
100.64.0.0/10
169.254.0.0/16
172.16.0.0/12
192.0.0.0/24
192.168.0.0/16
224.0.0.0/24
240.0.0.0/4
239.255.255.250/32
255.255.255.255/32
fe80::/10
fd00::/8
ff01::/16
ff02::/16
ff03::/16
ff04::/16
ff05::/16
fc00::/7
(default) Fallback domains:
intranet
internal
private
localdomain
domain
lan
home
host
corp
local
localhost
home.arpa
invalid
test
(Not set) Daemon Teams Auth: false
(default) Disable Auto Fallback: false
(Not set) Allow Updates: true
查看代理是否生效:
export ALL_PROXY=socks5://127.0.0.1:40000
curl ifconfig.me
服务端的配置文件需要添加和修改的地方如下:
{
"outbounds": [
...
{
"protocol": "socks",
"settings": {
"address": "127.0.0.1",
"port": 40000
},
"tag":"socks_out"
}
],
"router": {
"domainStrategy": "AsIs",
"rule": [
...
{
"tag": "socks_out",
"geoDomain": [
{
"code": "openai",
"filePath": "geosite.dat"
}
],
"domainMatcher": "mph"
}
]
},
"inbounds": [
{
"protocol": "vmess",
...
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
},
...
注意需要安装扩展版的 geosite.dat 才有 openai 的条目:https://github.com/Loyalsoldier/v2ray-rules-dat
通过访问以下网址测试是否已经解锁 ios app 端:https://ios.chat.openai.com/public-api/mobile/server_status/v1
以上就是解决 chatgpt 无法访问的方法。
]]>GitHub 主页:https://github.com/immich-app/immich
官网教程:https://immich.app/docs/overview/introduction/
使用 docker compose 安装,新建一个 immich 文件夹,下载 docker-compose.yml 和 .env 文件到文件夹:
wget https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
打开 .env 文件配置环境变量,主要就是配置备份路径和数据库密码,修改 UPLOAD_LOCATION 和 DB_PASSWORD。
启动容器:
docker compose up -d
后续更新只需要进入 immich 文件夹执行下面命令即可:
docker compose pull && docker compose up -d
docker-compose.yml 文件中默认将 3001 端口映射到了本地 2283 端口,3001就是服务端访问端口号。
下面是所有可用的端口,根据需要可以修改 docker-compose 文件映射到本地:
PORT | Web Port | 3000 | web |
SERVER_PORT | Server Port | 3001 | server |
MICROSERVICES_PORT | Microservices Port | 3002 | microservices |
MACHINE_LEARNING_HOST | Machine Learning Host | 0.0.0.0 | machine learning |
MACHINE_LEARNING_PORT | Machine Learning Port | 3003 | machine learning |
网页端访问:http://you.machine.ip:2283 进入配置页面,根据提示建立一个管理员账户,后续可以在管理员账户中建立其他子账户供其他人使用。
下载手机端 app,ios 直接在 app store 搜索 immich 下载,安卓在 github 发布页下载 apk:https://github.com/immich-app/immich/releases
在手机端输入以下网址进入:http://you.machine.ip:2283/api
然后就可以配置需要备份的手机端图片文件夹了。
服务器在本地,如果要外网域名远程访问图库,需要一些额外的配置,我这里是通过 cloudflare 配置子域名,nginx 配置反向代理到 frps,最后本地服务器 frpc 配置本地 2283 端口绑定到远程域名访问即可。
可以参考我之前的关于 frp 的教程:https://blog.niekun.net/archives/539.html
]]>添加需要用到的命令是:add-apt-repository,但是默认系统并没有安装这个环境,需要先手动安装 package software-properties-common:
sudo apt install software-properties-common
然后就可以安装需要的源了,推荐两个:
https://launchpad.net/%7Esavoury1/+archive/ubuntu/backports?field.series_filter=bionic
https://launchpad.net/%7Esavoury1/+archive/ubuntu/utilities?field.series_filter=bionic
安装方法很简单:
sudo add-apt-repository ppa:savoury1/backports
sudo add-apt-repository ppa:savoury1/utilities
sudo apt-get update
执行 apt update 后会发现很多可更新的软件了。
]]>参考教程:Ubuntu desktop 配置 vnc server
xrdp 是对 Windows rdp 协议的开源实现。
我的系统是 Ubuntu desktop 20.04,首先需要保证有一个已经安装的桌面环境,desktop 版默认是 genome,也可以安装其他的如 xfce:
sudo apt install ubuntu-desktop
安装 xrdp:
sudo apt install xrdp
安装完成后,xrdp 会自动启动,可以通过命令查看状态:
$ sudo systemctl status xrdp
● xrdp.service - xrdp daemon
Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2022-05-23 09:50:43 CST; 20min ago
Docs: man:xrdp(8)
man:xrdp.ini(5)
Process: 83586 ExecStartPre=/bin/sh /usr/share/xrdp/socksetup (code=exited, status=0/SUCCESS)
Process: 83594 ExecStart=/usr/sbin/xrdp $XRDP_OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 83595 (xrdp)
Tasks: 2 (limit: 9459)
Memory: 26.4M
CGroup: /system.slice/xrdp.service
├─83595 /usr/sbin/xrdp
└─83597 /usr/sbin/xrdp
默认 rdp 端口为 3389.
xrdp 安装后,会自动创建一个新系统用户 xrdp
,并且将一个 ssl key ssl-cert-snakeoil.key
放入 /etc/ssl/private/
文件夹,需要将 xrdp 用户添加到 ssl-cert 用户组确保 xrdp 可以读取这个 ssl key:
sudo adduser xrdp ssl-cert
默认配置测试访问会有黑屏问题,显示不出来界面,需要修改 /etc/xrdp/startwm.sh
文件,在文件最后的 test -x /etc/X11/Xsession
前面加入如下内容:
unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR
重启 xrdp 服务:
sudo systemctl restart xrdp
现在就可以正常通过 rdp 连接到 Ubuntu了。
在使用中,我出现了输入用户密码后停留在解锁界面无法登录进去的问题,经过查询 xdrp 目前不可以同时在多个设备上尝试登录。同时登录 xrdp 的用户如果和正常在主机上登录的是同一个用户,需要删除 dbus-user-session
包,用 dbus-x11
代替。第三点,需要保证 gdm3 运行,执行下面的命令:
sudo apt remove dbus-user-session
sudo apt install dbus-x11
sudo systemctl set-default graphical
sudo systemctl isolate graphical
重启 xrdp 服务:
sudo systemctl restart xrdp
此时应该就可以正常通过 rdp 客户端链接 ubuntu 界面了。
但是我测试发现,第一次登录进去没问题,关闭后过一会儿再次尝试链接发现卡在登录界面没反应了,尝试执行如下命令:
echo xfce4-session > $HOME/.xsession
chmod +x .xsession
发现问题似乎解决了,但是调用的事 xfce 桌面环境。
在局域网下访问比较流畅,但是在外网下发现没法达到 Windows rdp 流畅的效果。解决方法可以是在外网通过 rdp 链接一个局域网下 Windows 设备,然后在 Windows 设备下通过 rdp 链接局域网内的 ubuntu 设备。
How to Install Xrdp on Ubuntu 20.04
Xrdp stuck on login, after password is entered, unblocked if I unlock from the ubuntu rdp server
Using the console and XRDP together in Debian / Ubuntu / Mint
XRDP session immediately closes after loggin in
首先就是升级当前系统所有包到最新:
apt update && apt upgrade -y
apt autoremove && apt purge
然后安装升级需要的管理包,不过一般系统都是自带的:
apt install update-manager-core
然后就可以更新系统了:
do-release-upgrade
标准流程就是以上几步,但是在最后一步的时候问题就开始出现了。
在执行升级命令后出现报警:
Failed to connect to https://changelogs.ubuntu.com/meta-release-lts. Check your Internet connection or proxy settings
在查询一些资料后,原来是 ssl certificates 验证问题,系统无法鉴定上面的 https 链接证书是否有效就返回错误了。
这个问题也是我这个系统的一个遗留问题,每次执行 wget 或 curl 下载东西的时候就会提示证书报错,需要通过附加指令跳过证书验证,但这就会存在安全问题了。
解决方法就是更新本地证书库后添加 SSL_CERT_DIR
环境变量指向系统证书目录:
update-ca-certificates --verbose --fresh
export SSL_CERT_DIR=/etc/ssl/certs
为了方便以后使用,将环境变量添加到 ~/.bashrc
文件中。这样就解决了 https 链接证书验证问题。
然后先删除之前执行升级命令后错误内容:
rm /var/lib/ubuntu-release-upgrader/release-upgrade-available
/usr/lib/ubuntu-release-upgrader/release-upgrade-motd
之后再次执行升级命令 do-release-upgrade
。
这时候报错信息变化了,这时候提示的是 python3 有问题,原因是我当前系统使用的是自己编译的 python 3.8,路径在 /opt 目录下。当时将系统软链接 /usr/bin/python
和 /usr/bin/python3
都指向了自己安装的 python,需要将他们恢复到指向系统内置的 python 程序。
下面需要介绍下系统内 python 主程序和软链接的分布:
python2 主应用程序为 /usr/bin/python2.7
python3 主应用程序为 /usr/bin/python3.6
pip 主程序为 /usr/bin/pip
pip3 主程序为 /usr/bin/pip3
下面是默认的软链接及指向的应用程序:
/usr/bin/python -> /usr/bin/python2.7
/usr/bin/python2 -> /usr/bin/python2.7
/usr/bin/python3 -> /usr/bin/python3.6
/usr/local/bin/pip -> /usr/bin/pip
/usr/local/bin/pip3 -> /usr/bin/pip3
如果你修改过这些软链接到自己的 python 版本,就需要修改回来:
ln -sf /usr/bin/python2.7 /usr/bin/python
ln -sf /usr/bin/python2.7 /usr/bin/python2
ln -sf /usr/bin/python3.6 /usr/bin/python3
ln -sf /usr/bin/pip /usr/local/bin/pip
ln -sf /usr/bin/pip3 /usr/local/bin/pip3
ldconfig
以上问题都处理完后,再次执行升级命令,一切都正常了。
]]>WSL 开启参考:https://blog.niekun.net/archives/1148.html
我使用的是 VMware workstation 安装了 Ubuntu 18.04 LTS。安装过程中与遇到了一些问题,需要特别的进行处理,在此做一下记录。
官网下载 VMware workstation,需要购买序列号:https://my.vmware.com/en/web/vmware/info/slug/desktop_end_user_computing/vmware_workstation_pro/15_0
下载完成后进行安装,然后根据提示重启及输入序列号。
Ubuntu 18.04 LTS 镜像下载:http://releases.ubuntu.com/18.04.4/ubuntu-18.04.4-desktop-amd64.iso
镜像下载完成后就可以开始准备安装虚拟机了,点击 文件 - 新建虚拟机:
选择 典型 安装,然后下一步,点击浏览找到 Ubuntu 镜像文件:
下面就根据提示设置虚拟机账户密码等信息,完成安装后会自动启动虚拟机,使用刚才设置的用户名密码登录虚拟机。
光标退出虚拟机的快捷键是:ctrl alt。
我的主机显示比例是 16:9 的1920 × 1080,开机后显示比例是 16:10 的,所以需要设置下全屏。
首先点击保持纵横比拉伸来让显示尽量铺满全屏:
进入 Ubuntu,点击右下角扩展键:
搜索 displays,然后进入显示设置:
选择一个和主机一样比例的分辨率:
这样虚拟机就可以全屏了。
VMware tools 可以让主机和虚拟机实现数据交互,很多功能依赖于 VMware tools,如:共享文件夹,网络桥接,共享剪贴板等。
但是我在安装虚拟机后,VMware tools 安装项是灰色的:
查询后了解到 Linux 的 tools 需要手动安装,官网对 Linux 虚拟机安装 VMware tools 有一篇教程:https://www.vmware.com/support/ws5/doc/ws_newguest_tools_linux.html
VMware 安装的时候在安装目录下会有一个 linux.iso 文件,这就是 VMware tools 安装镜像,我的路径是:C:\Program Files (x86)\VMware\VMware Workstation\linux.iso
首先在虚拟机设置里添加一个新的 cd/dvd,挂载 VMware 安装目录下的 linux.iso 镜像:
进入 Ubuntu,桌面会有 VMware tools,终端路径是:/media/USERNAME/VMware Tools
:
进入 VMware Tools 目录,里面有一个压缩包:VMwareTools-10.3.10-13959562.tar.gz,执行如下命令:
cd /tmp
tar xvf '/media/USERNAME/VMware Tools/VMwareTools-10.3.10-13959562.tar.gz'
cd vmware-tools-distrib
sudo ./vmware-install.pl
执行解压目录下的 vmware-install.pl,一路 enter 即可。执行结束后就完成了 VMware Tools 的安装,重启系统。
在虚拟机设置里将网络连接设置为桥接模式,这样虚拟机和主机就在一个 IP 网段内,如果不设置为桥接模式,虚拟机内可能无法执行一些网络命令,如:mtr:
设置完成后重启虚拟机,主机使用命令 ipconfig 查看当前 IP:
虚拟机使用命令 ifconfig 查看当前 IP:
两个 IP 在一个网段内则设置成功。
根据需要可以设置共享主机文件夹,在虚拟机内可以访问,共享文件夹路径是:/mnt/hgfs
:
在虚拟机终端测试访问:
如果主机设置了代理,虚拟机可以直接共享此代理设置。
首先设置主机代理端口开放给局域网,如果是显示只监听本地地址则 listen
地址设置为 127.0.0.1
,如果开放监听局域网地址,则 listen
地址设置为 0.0.0.0
即可。
在主机使用命令 ipconfig 查看主机 IP 地址。如果要在虚拟机设置系统代理,在虚拟机 Ubuntu 设置里搜索 proxy,点击 network proxy 手动设置代理地址:
如果不想设置系统代理,也可以根据上面的主机地址和端口,在单独的应用程序里设置代理,如浏览器。
终端代理设置参考我之前的文章,也是使用上面得到的主机 IP 和代理端口:https://blog.niekun.net/archives/97.html
以上就是我用 VMware workstation 安装 Ubuntu 的过程。
]]>国内使用 apt 安装软件如果感觉比较慢,可能是 deb 源是国外的,通过修改为国内源,可以很好的进行加速下载。
每一个版本的 Ubuntu 都会有一个代号: codename,用来识别不同的版本,比如:
在更换源的时候需要使用到代号codename,可以使用如下命令查看当前系统版本代号:
lsb_release -a
为防止修改错误或其他问题,将系统自带源文件进行备份很有必要,执行如下指令:
sudo cp /etc/apt/sources.list /etc/apt/sources.list_bak
打开 sources.list 文件,将内容修改为想要的国内源:
vim /etc/apt/sources.list
输入命令 ggdG
清空内容,修改为清华源加入如下内容:
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
可以看到每行内容里都有对应系统代号信息,如果要修改其他版本系统的 apt 源,只需要将里面系统代号替换即可。
常用国内源:
]]>Ubuntu 14.04
add ppa:https://launchpad.net/~mc3man/+archive/ubuntu/trusty-media