前些日子申请了一台Hax的IPv6_only的VPS,本来只搭了一个hysteria2协议的代理,因为只能使用IPv6连入,基本处于放置不用的状态,但是看到后来大家都开始抢注册,又舍不得把机器放出,于是一直在续期。
近些天,在这台机器上部署了一些应用,感觉用起来还比较舒服,于是做个记录。
一些常用程序包的安装
我选择的是Debian11的系统,因为免费的VPS只有1500MB的内存,为了尽可能部署更多的服务,我没有选择安装Docker。与之相对应,我安装了Python和Node.js还有OpenJDK,以便运行目前和之后我需要部署在VPS上的服务。
现得知,由于Hax目前使用的OpenVZ虚拟化技术的原因,docker相关功能无法使用,所以只能使用手动部署的方式对应用进行部署。
前置需求:
因为Hax只有IPv6网络,甚至于有时dns服务器的默认设置是一个IPv4地址,根本无法解析,需要先配置使用DNS64才能正常联网。配置DNS64可以使用此命令:mac" style="transition: color 0.2s ease 0s, background 0.2s ease 0s, box-shadow 0.2s ease 0s, border-color 0.2s ease 0s; position: relative; box-sizing: border-box; margin: 1.4rem 0px 1.8rem; box-shadow: rgba(0, 0, 0, 0.4) 0px 0.8rem 2rem 0px;">BASHBASH即可获得Cloudflare提供的IPv4地址,正常访问IPv4的网络资源。
另外,可以在Warp+ bot处生成Warp+的秘钥,提升Warp的网络速度。
Python
我就是喜欢追新,所以这里我没有直接使用 apt-get
安装Python,而是选择了编译安装目前最新的Release版本——Python-3.12.1。编译安装并不难,只是略微有些慢:
先安装一些环境依赖:
接着编译安装Python:
再创建软链接:
检查安装是否成功:
Node.js
同理追新,我选择安装Node.js-v21.5.0:
检测安装是否成功:
OpenJDK
用得不多,所以偷个懒,直接 apt-get
安装:
检测安装是否成功:
如果要安装新一点的版本,以OpenJDK 21为例:
BASH然后修改
/etc/profile
,在最末添加一些环境变量:BASH可以使用sftp上传覆盖修改,也可以使用vim、nano之类的工具在线修改。
修改完后应用环境变量:BASH
PHP
这里我选择了安装PHP8.2,debian11的 apt-get
源里只搜得到低版本,同Node.js一样,稍作处理即可用 apt-get
直接安装:
如果在执行第二条命令时报错:
则通过这个办法解决:
MySQL
创建自己的数据库,再也不用到处找免费的数据库白嫖!充分利用Hax的15G硬盘。安装方法如下:
MySQL默认监听3306端口,安装过程中会有一些自定义选项,还会要求你设置数据库root用户的密码。使用查看版本号的命令检查MySQL是否安装正常:
Redis
默认监听6379端口,主要用于缓存提速,部分应用可用,不详细介绍,只记录安装方法:
连接测试,会进入到127.0.0.1:6379的实例中:
pm2
推荐一个很好用的进程管理工具:pm2,安装简单,功能强大。具体功能不细说,源仓库介绍很详细,安装方法也很简单,直接用 npm
就能安装:
常用指令:
一些应用的部署
我首先部署的代理在此就不做介绍了,Hysteria2和tuic协议目前在Hax上的表现都还不错,GitHub和Gitlab上也都有不少一键部署的脚本。如果希望在本地没有IPv6的情况下代理到Hax,则需要选择使用Cloudflare隧道的代理方式,上述的fscarmen大佬也有提供,这里不再赘述。
我目前已经在Hax上部署了PandoraNext、TokensTool、One-API、Bingo四项服务,并通过Cloudflared隧道链接到了自己的域名,通过Cloudflare提供的服务,使得没有IPv6的网络情况下也可以访问我部署的服务。以上服务均用 pm2
启动,以便管理,防止崩溃。
Bingo
通过源码部署的方式进行部署。将Bingo的代码下载到本地,并测试运行:
其默认端口配置在 server.js
文件的第7行,默认为 3000
。运行成功后可以访问http://[IPv6]:PORT查看是否正常运行。
正常运行的话,使用 Ctrl+c
停止运行,如果你希望设置内置账号,可以设置环境变量:
再使用pm2启动:
至此,Bingo就部署完毕了,如果需要修改 BING_HEADER
然后重启应用的话,修改后直接使用 ps -ef
命令找到原本运行的Bingo,接着使用 kill
将其停止即可。pm2会自启Bingo。
One-API
因为源仓库提供了可执行文件,所以部署起来非常简单,下载,赋权,运行即可:
接着检查一下1333端口上one-api是否正常运行,运行正常的话,使用 Ctrl+c
停止运行。再使用pm2启动One-API:
至此,One-API部署完毕。如果需要升级,与Bingo同理,下载覆盖后,使用kill停止原本的任务即可,pm2会自启One-API。
PandoraNext
与One-API相同,PandoraNext提供了可执行文件,部署简单。需要注意的是,PandoraNext并不是一个服务端,只是一个客户端,而且并不开源,但是其功能非常强大,且免费使用。以下是部署步骤:
接着修改 config.json
文件,填入自己的配置,再启动PandoraNext进行测试运行:
接着检查一下你在 config.json
中设置的端口上PandoraNext是否正常运行,运行正常的话,使用 Ctrl+c
停止运行。再使用pm2启动PandoraNext:
至此,PandoraNext部署完毕。如果需要升级,与Bingo同理,下载覆盖后,使用kill停止原本的任务即可,pm2会自启PandoraNext。
需要注意的是,PandoraNext的License是绑定IPv4的,实际上Hax的IPv6_only的VPS都在相近的机房,其套用Warp获得的IPv4地址数量非常有限,大多数都是共用相同的IPv4地址。按照PandoraNext的规则来讲,就是先到先得,部署晚的有可能会无法绑定License。
TokensTool
TokensTool是配合PandoraNext使用的tokens管理工具,能把刷新tokens、推流one-api等工作自动化进行,而且配备了UI页面,使用简单方便。目前TokensTool还在不断更新中,如今已经支持了cocopilot转OpenAI API的功能,越来越多的功能将会被添加进去。TokensTool是用Java写的,提供了打包好的Jar包,只需要下载Jar包运行即可:
接着检查一下8081端口上TokensTool是否正常运行,运行正常的话,使用 Ctrl+c
停止运行。再使用pm2启动TokensTool:
至此,TokensTool部署完毕。如果需要升级,与Bingo同理,下载覆盖后,使用kill停止原本的任务即可,pm2会自启TokensTool。
Cloudflared
为了便利的给上述服务添加域名,并使得没有IPv6的网络环境下也能访问上述服务,我使用了Cloudflare提供的隧道,其使用方法也是非常简单便利:
在Cloudflare的面板中看到隧道上线,则运行正常。再使用 Ctrl+c
停止运行,并使用pm2启动Cloudflared:
至此,Cloudflared部署完毕。如果需要升级,与Bingo同理,下载覆盖后,使用kill停止原本的任务即可,pm2会自启Cloudflared。
在Cloudflare的面板中给上述服务添加对应域名即可,比如3000端口的bingo,只要添加 HTTP
协议的地址 localhost:3000
即可。
一些我没有部署但可以部署的应用
在Warp和Cloudflared的加持下,Hax的IPv6_only的VPS的使用基本上已经和有IPv4的服务器无异,仅仅在需要进行SSH或者SCP连接的时候必须要求本地有IPv6网络。而实际上,通过使用File Browser和TTYD并使用Cloudflared隧道穿透出来,就变相实现了这两个协议所实现的功能在没有IPv6网络的情况下的使用。
上述的两个仓库都是单个可执行文件即可实现部署,这里不再赘述部署方式,仅仅记录运行命令,以便查找:
此外,各种QQ机器人、Blog框架(如 jar4halo)、文件目录程序(如 alist)、图床程序等等。因为此前已经把Python、Node.js、OpenJDK、PHP都安装好了,主流应用的环境问题都很好解决,多数只需要按照文档部署即可。
BASH
文件的备份与转移
如果你需要将服务器上的文件快速地下载到本地,亦或者是传输到另一台服务器上,可以使用ShareList。
这是一个一键脚本,用以在当前路径直接启动sharelist,并且把当前路径挂载到sharelist中:
上述命令只能在AMD64架构的Linux机器上使用。sharelist固定运行在33001端口,因为其监听的是127.0.0.1
所以无法使用ip:port
进行访问,你可以选择用nginx或者直接用Cloudflared绑定33001端口到一个域名进行访问。进入sharelist的页面后,你可以直接把打包好的文件下载到本地或者在另外一台机器使用wget -O 文件名 '链接'
的命令进行下载。
另外把打包和解压的命令做个备份,我喜欢使用tar命令,这里只记录tar:
**打包:
tar -czvf 文件名.tar.gz 路径
**,比如打包整个/root/app
路径,命名为archive.tar.gz
,即为tar -czvf archive.tar.gz /root/app
**解压:
tar -xzvf 文件名
**,比如解压刚刚打包的archive.tar.gz
即为tar -xzvf archive.tar.gz
未完待续……
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/5838.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~