Welcome, Guest |
You have to register before you can post on our site.
|
Latest Threads |
nginx简单配置多个php服务实例教程
Forum: WEB
Last Post: adahrzgj
11-10-2023, 08:38 AM
» Replies: 0
» Views: 8,345
|
php修改上传附件大小限制
Forum: WEB
Last Post: adahrzgj
10-19-2023, 02:37 PM
» Replies: 0
» Views: 8,926
|
Ubuntu 自建安装Nginx+MySQL+PH...
Forum: WEB
Last Post: adahrzgj
10-19-2023, 02:35 PM
» Replies: 0
» Views: 8,280
|
傻瓜教程: Orac1e的实例如何进入救援模式
Forum: VPS
Last Post: adahrzgj
10-12-2023, 03:46 PM
» Replies: 0
» Views: 9,078
|
利用 GAE 扩展谷歌永久免费机的月流量
Forum: VPS
Last Post: adahrzgj
10-06-2023, 04:44 PM
» Replies: 0
» Views: 9,296
|
搞了个DNS解锁,发出来分享一下
Forum: VPS
Last Post: adahrzgj
09-17-2023, 02:44 PM
» Replies: 0
» Views: 9,562
|
设置itunel连接后自动备份
Forum: 生活
Last Post: adahrzgj
07-10-2023, 07:02 AM
» Replies: 0
» Views: 839
|
rclone自己申请的账号7天失效的问题
Forum: WEB
Last Post: adahrzgj
04-22-2023, 04:06 PM
» Replies: 0
» Views: 7,945
|
使用 Shadowrocket Quantumul...
Forum: WEB
Last Post: adahrzgj
04-21-2023, 04:50 AM
» Replies: 0
» Views: 2,182
|
青龙删除日志
Forum: WEB
Last Post: adahrzgj
04-07-2023, 03:21 PM
» Replies: 0
» Views: 1,631
|
|
|
彻底删除v2ray |
Posted by: adahrzgj - 08-21-2022, 07:52 AM - Forum: VPS
- No Replies
|
 |
1、用SSH登录VPS主机
分别输入如下命令卸载V2ray
一些两种方法 systemd 和 sysv 二选一,取决于你的系统。如果不清楚其实没关系,两者都输入一下,不对的话会自然提示报错而已。
方法1、停用并卸载服务(systemd)
systemctl stop v2ray
systemctl disable v2ray
方法2、停用并卸载服务(sysv)
service v2ray stop
update-rc.d -f v2ray remove
2、删除V2ray多余的文件
分别输入如下代码,回车即可
#(配置文件删除)
rm -rf /etc/v2ray/*
#(程序删除)
rm -rf /usr/bin/v2ray/*
#(日志删除)
rm -rf /var/log/v2ray/*
#(systemd 启动项删除)
rm -rf /lib/systemd/system/v2ray.service
#(sysv 启动项删除)
rm -rf /etc/init.d/v2ray
|
|
|
甲骨文ubuntu dibian开启原生bbr |
Posted by: adahrzgj - 08-21-2022, 07:50 AM - Forum: VPS
- No Replies
|
 |
#首先先更新下系统,然后安装依赖组建:
apt-get update
apt-get update && apt-get install -y wget curl
#之后开启原生BBR:
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
#检测是否正常开启BBR:
sysctl net.ipv4.tcp_available_congestion_control
lsmod | grep bbr
如果第一项输出为reno cubic bbr第二项为tcp_bbr即表示开启成功。
*************************************************
今天老哥发的脚本更方便。wget-N--no-check-certificate "https://github.000060000.xyz/tcp.sh" && chmod+X tep.sh&&./tcp.sh
|
|
|
甲骨文ARM主机救砖指南 |
Posted by: adahrzgj - 08-21-2022, 07:50 AM - Forum: VPS
- No Replies
|
 |
1:新建个AMD机器
2:分离ARM机器硬盘----【甲骨文后台=>计算>>实例>>实例详细信息>>停止(即关机)】
【 甲骨文后台=>计算>>实例>>实例详细信息>>引导卷>>分离】
3:进去AMD机器SSH终端操作
[添加ARM硬盘]
附加命令(具体以甲骨文后台提示的命令为准,每个人都不同
示列如下:
sudo iscsiadm -m node -o new -T iqn.2015-02.oracle.boot:uefi -p 169.254.2.4:3260
sudo iscsiadm -m node -o update -T iqn.2015-02.oracle.boot:uefi -n node.startup -v automatic
sudo iscsiadm -m node -T iqn.2015-02.oracle.boot:uefi -p 169.254.2.4:3260 -l
用lsblk 命令查看有没有SDB 有的话就是挂载上去了
4:下载救转包
cd /root && wget http://app.isos.cc/ubuntu.img.gz
密码putaosi.com
5:DD到sbd 【ARM硬盘】
gzip -dc /root/ubuntu.img.gz | dd of=/dev/sdb
6:查看进度
新开一个SSH窗口
watch -n 5 pkill -USR1 ^dd$
7:DD完成分离硬盘》参照步骤3【分离和添加命令不同,自己后台看自己的】
8:挂载到ARM机器
|
|
|
EUServ德国免费小鸡支持大部分IPv4网站访问 |
Posted by: adahrzgj - 08-21-2022, 07:48 AM - Forum: VPS
- No Replies
|
 |
具体方法:直接执行
echo -e "nameserver 2001:67c:2b0::4\nnameserver 2001:67c:2b0::6" > /etc/resolv.conf
就可以了
|
|
|
青龙面板修改端口,提高安全性。 |
Posted by: adahrzgj - 08-21-2022, 07:46 AM - Forum: VPS
- No Replies
|
 |
目录
前言
第一步
第二步 关闭docker
第三步 打开文件修改
第四步 重启docker
结尾
前言
最近很多小伙伴青龙被扫,出现下面的情况,所以这里带大家改一下端口,不再使用以前的5700了。
第一步
连接服务器,输入以下命令,查看你的容器id
sudo docker ps -a
1
第二步 关闭docker
输入以下命令,关闭docker
service docker stop
1
第三步 打开文件修改
路径 /var/lib/docker/container/
进入containers文件夹,进去前缀为你容器id的文件夹
找到hostconfig.json,打开编辑
把HostPort后面的5700改成你想要的端口,保存(只改这一个,其他别动)
第四步 重启docker
输入一下命令重启即可
systemctl restart docker
1
结尾
注意,修改完端口,记得去服务器开放你设置的端口,不然无法访问。
加入Q群,学习交流334996635
|
|
|
一键DD脚本 |
Posted by: adahrzgj - 08-21-2022, 07:44 AM - Forum: VPS
- No Replies
|
 |
一键DD脚本,支持性好,更智能更全面,支持国内外各种VPS重装,特别是对国内各种访问国外资源慢的VPS安装有奇效。
更新说明:
20220613:新版自定义密码支持特殊字符.!$@#&%
20220428:修复MoeClub新版DD过程中卡住的BUG,修复Centos7下出现 Error! Not Found grub. 的错误提示,新增支持 xz 压缩格式的 DD 系统镜像包。
20220406:CN系统镜像已失效,国内主机使用一键脚本1-25选项需要较长时间,推荐使用99的自定义系统镜像。
20211120:更新MoeClub新版,依赖更少,支持原版自定义密码安装,体验版可能有Bug.
20210909:支持debian11.
20210511:发现很多人不知道怎么DD甲骨文,使用支持uefi的镜像包即可.脚本已添加3个甲骨文专用选项23-25.
20210509:更新部分windows镜像,修正一处小问题.
20210127:更换部分windows镜像.
20210109:更新支持Ubuntu20.04安装,更新几个windows镜像.
20200708:更新自动为CN主机使用国内镜像源.
安装重装系统的前提组件:
Debian/Ubuntu:
apt-get install -y xz-utils openssl gawk file wget screen && screen -S os
RedHat/CentOS:
yum install -y xz openssl gawk file glibc-common wget screen && screen -S os
如果出现异常,请刷新Mirrors缓存或更换镜像源。
RedHat/CentOS:
yum makecache && yum update -y
Debian/Ubuntu:
apt update -y && apt dist-upgrade -y
使用:
wget --no-check-certificate -O NewReinstall.sh https://git.io/newbetags && chmod a+x NewReinstall.sh && bash NewReinstall.sh
如为CN主机(部分主机商已不能使用),可能出现报错或不能下载脚本的问题,可执行以下命令开始安装.
wget --no-check-certificate -O NewReinstall.sh https://cdn.jsdelivr.net/gh/fcurrk/reins...install.sh && chmod a+x NewReinstall.sh && bash NewReinstall.sh
点击使用旧版脚本
DD安装界面
输入Y确认DD后主机自动获取IP,N则自行设置IP 输入N后会自动检测出主机现用IP,如果正确可以按Y确认使用,如不正确则按N自行按正确的输入。
DD安装界面-选择系统
25合1的系统一键DD选择界面,输入99则使用自定义镜像。 以上系统密码不为默认密码的均为网络收集,如有疑虑使用自己的自定义镜像。
25合一系统密码:
1、CentOS 7.7 (已关闭防火墙及SELinux,默认密码Pwd@CentOS)
2、CentOS 7 (默认密码cxthhhhh.com)
3、CentOS 8 (默认密码cxthhhhh.com)
4、CentOS 6 (默认密码Minijer.com)
5、Debian 11 (默认密码Minijer.com)
6、Debian 10 (默认密码Minijer.com)
7、Debian 9 (默认密码Minijer.com)
8、Debian 8 (默认密码Minijer.com)
9、Ubuntu 20.04 (默认密码Minijer.com)
10、Ubuntu 18.04 (默认密码Minijer.com)
11、Ubuntu 16.04 (默认密码Minijer.com)
12、Windows Server 2019 (默认密码cxthhhhh.com)
13、Windows Server 2016 (默认密码cxthhhhh.com)
14、Windows Server 2012 (默认密码cxthhhhh.com)
15、Windows Server 2012 Lite (默认密码nat.ee)
16、Windows Server 2008 (默认密码cxthhhhh.com)
17、Windows Server 2008 Lite (默认密码nat.ee)
18、Windows Server 2003 (默认密码cxthhhhh.com)
19、Windows Server 2003 Lite (默认密码WinSrv2003x86-Chinese)
20、Windows 10 LTSC Lite (默认密码nat.ee)
21、Windows 7 x86 Lite (默认密码nat.ee)
22、Windows 7 Ent Lite (默认密码nat.ee)
23、Windows 7 Ent Lite (UEFI支持甲骨文)(默认密码nat.ee)
24、Windows Server 2008 Lite (UEFI支持甲骨文)(默认密码nat.ee)
25、Windows Server 2012 Lite (UEFI支持甲骨文)(默认密码nat.ee)
99、自定义镜像
注意:
经测试在谷歌云原版系统基础上DD会出现自动获取的子网掩码为255.255.255.255,如出现这种情况需要手工输入改正为正确的如255.255.255.0,否则会安装完成主机可能会离线。
Oracle Cloud(甲骨文云)可选择23-25一键DD,注意基础系统最好选择Ubuntu,如原系统是CentOS可能无法成功。
4-11项安装原版系统,可自定义密码,密码要求8-16位,以英文字母或数字开头,可以是大小写英文字母、数字及7个特殊字符.!$@#&%的任意组合。
特别感谢:Vicer、cxt、hiCasper等各位技术大佬的脚本,站长只是脚本的"搬运工"。
版权申明:以上所有脚本、系统均为网络收集,站长不对资源的安全及版权纠纷负责,如有侵犯您的权益欢迎联系。
站长邮箱:minijer#beta.gs(#换成@)
|
|
|
不用VPN,不用任何节点更不用VPS服务器 | 手把手教你如何免费搭建专属翻墙服务器 |
Posted by: adahrzgj - 08-21-2022, 07:43 AM - Forum: VPS
- No Replies
|
 |
前言
最近几天国内360旗下推出了一款叫做tuber浏览器的app,号称可以合法免费翻墙!就在短短的一天内,下载量就超过了550万次,火爆了全网,在YouTube或Google里铺天盖地的都是有关tuber浏览器的新闻,各种评测各种猜测也随之而来!但不知是由于下载量过大的原因还是处于种种压力,这款浏览器在一天之内就挂掉了,甚至官网都不能打开了!按说得到国家认可的app不应该因为服务器过载而挂掉才是啊?那么至于其他原因,咱们这里就不再去深做研究!但话又说回来,这款浏览器就算至今可用,那么它那需要手机号实名注册的政策,你的一切上网行为都将被监视着,你还敢用吗?我是不敢,倒不是怕啥,就是不喜欢被监视,有种被XX的感觉!
但只可惜,这款浏览器只是昙花一现,没有泛起任何大的波澜,就匆匆离世!毕竟只是想看看YouTube视频和google资料,且又不关心政治新闻的人占绝大多数,这样就对很大一部分人来说是比较惋惜的,不过呢?咱们也不用气馁!tuber浏览器能再带节点免费翻墙上网,那么我们为什么不能自己搭建一个类似的网页呢?重要的是,我们也是要无任何损失的,去做一个完全免费又真正属于自己的免费翻墙站点!不仅可以自己用,还可以分享给身边的朋友,让他们也能一睹外网的风采!
那如何实现呢?我们就需要借助于cloudflare来实现此功能!大家都知道,cloudflare自从推出了CloudFlare Workers这个项目,被众多程序员推崇!利用Workers部署jsproxy进行反代!!!将自己的代码复制进去就可实现我们想要的效果!而这个项目最终效果是让我们接入到特定服务器来进行科学上网!方便广大学子外网查资料所用!最终效果和tuber浏览器也是非常像!
站点预览准备工作:
1、要拥有一个cloudflare的账号;点击进入账号申请
2、一个域名地址并解析到cloudflare上去托管;freenom域名免费申请:点击进入
3、并激活workers功能!
第一步现在域名解析
第二步进入workers部署代码
点击创建一个workers后进入部署源码:
'use strict'
/**
* static files (404.html, sw.js, conf.js)
*/
const ASSET_URL = 'https://etherdream.github.io/jsproxy'
const JS_VER = 10
const MAX_RETRY = 1
/** @type {RequestInit} */
const PREFLIGHT_INIT = {
status: 204,
headers: new Headers({
'access-control-allow-origin': '*',
'access-control-allow-methods': 'GET,POST,PUT,PATCH,TRACE,DELETE,HEAD,OPTIONS',
'access-control-max-age': '1728000',
}),
}
/**
* @param {any} body
* @param {number} status
* @param {Object<string, string>} headers
*/
function makeRes(body, status = 200, headers = {}) {
headers['--ver'] = JS_VER
headers['access-control-allow-origin'] = '*'
return new Response(body, {status, headers})
}
/**
* @param {string} urlStr
*/
function newUrl(urlStr) {
try {
return new URL(urlStr)
} catch (err) {
return null
}
}
addEventListener('fetch', e => {
const ret = fetchHandler(e)
.catch(err => makeRes('cfworker error:\n' + err.stack, 502))
e.respondWith(ret)
})
/**
* @param {FetchEvent} e
*/
async function fetchHandler(e) {
const req = e.request
const urlStr = req.url
const urlObj = new URL(urlStr)
const path = urlObj.href.substr(urlObj.origin.length)
if (urlObj.protocol === 'http:') {
urlObj.protocol = 'https:'
return makeRes('', 301, {
'strict-transport-security': 'max-age=99999999; includeSubDomains; preload',
'location': urlObj.href,
})
}
if (path.startsWith('/http/')) {
return httpHandler(req, path.substr(6))
}
switch (path) {
case '/http':
return makeRes('请更新 cfworker 到最新版本!')
case '/ws':
return makeRes('not support', 400)
case '/works':
return makeRes('it works')
default:
// static files
return fetch(ASSET_URL + path)
}
}
/**
* @param {Request} req
* @param {string} pathname
*/
function httpHandler(req, pathname) {
const reqHdrRaw = req.headers
if (reqHdrRaw.has('x-jsproxy')) {
return Response.error()
}
// preflight
if (req.method === 'OPTIONS' &&
reqHdrRaw.has('access-control-request-headers')
) {
return new Response(null, PREFLIGHT_INIT)
}
let acehOld = false
let rawSvr = ''
let rawLen = ''
let rawEtag = ''
const reqHdrNew = new Headers(reqHdrRaw)
reqHdrNew.set('x-jsproxy', '1')
// 此处逻辑和 http-dec-req-hdr.lua 大致相同
// https://github.com/EtherDream/jsproxy/bl...eq-hdr.lua
const refer = reqHdrNew.get('referer')
const query = refer.substr(refer.indexOf('?') + 1)
if (!query) {
return makeRes('missing params', 403)
}
const param = new URLSearchParams(query)
for (const [k, v] of Object.entries(param)) {
if (k.substr(0, 2) === '--') {
// 系统信息
switch (k.substr(2)) {
case 'aceh':
acehOld = true
break
case 'raw-info':
[rawSvr, rawLen, rawEtag] = v.split('|')
break
}
} else {
// 还原 HTTP 请求头
if (v) {
reqHdrNew.set(k, v)
} else {
reqHdrNew.delete(k)
}
}
}
if (!param.has('referer')) {
reqHdrNew.delete('referer')
}
// cfworker 会把路径中的 `//` 合并成 `/`
const urlStr = pathname.replace(/^(https?):\/+/, '$1://')
const urlObj = newUrl(urlStr)
if (!urlObj) {
return makeRes('invalid proxy url: ' + urlStr, 403)
}
/** @type {RequestInit} */
const reqInit = {
method: req.method,
headers: reqHdrNew,
redirect: 'manual',
}
if (req.method === 'POST') {
reqInit.body = req.body
}
return proxy(urlObj, reqInit, acehOld, rawLen, 0)
}
/**
*
* @param {URL} urlObj
* @param {RequestInit} reqInit
* @param {number} retryTimes
*/
async function proxy(urlObj, reqInit, acehOld, rawLen, retryTimes) {
const res = await fetch(urlObj.href, reqInit)
const resHdrOld = res.headers
const resHdrNew = new Headers(resHdrOld)
let expose = '*'
for (const [k, v] of resHdrOld.entries()) {
if (k === 'access-control-allow-origin' ||
k === 'access-control-expose-headers' ||
k === 'location' ||
k === 'set-cookie'
) {
const x = '--' + k
resHdrNew.set(x, v)
if (acehOld) {
expose = expose + ',' + x
}
resHdrNew.delete(k)
}
else if (acehOld &&
k !== 'cache-control' &&
k !== 'content-language' &&
k !== 'content-type' &&
k !== 'expires' &&
k !== 'last-modified' &&
k !== 'pragma'
) {
expose = expose + ',' + k
}
}
if (acehOld) {
expose = expose + ',--s'
resHdrNew.set('--t', '1')
}
// verify
if (rawLen) {
const newLen = resHdrOld.get('content-length') || ''
const badLen = (rawLen !== newLen)
if (badLen) {
if (retryTimes < MAX_RETRY) {
urlObj = await parseYtVideoRedir(urlObj, newLen, res)
if (urlObj) {
return proxy(urlObj, reqInit, acehOld, rawLen, retryTimes + 1)
}
}
return makeRes(res.body, 400, {
'--error': `bad len: ${newLen}, except: ${rawLen}`,
'access-control-expose-headers': '--error',
})
}
if (retryTimes > 1) {
resHdrNew.set('--retry', retryTimes)
}
}
let status = res.status
resHdrNew.set('access-control-expose-headers', expose)
resHdrNew.set('access-control-allow-origin', '*')
resHdrNew.set('--s', status)
resHdrNew.set('--ver', JS_VER)
resHdrNew.delete('content-security-policy')
resHdrNew.delete('content-security-policy-report-only')
resHdrNew.delete('clear-site-data')
if (status === 301 ||
status === 302 ||
status === 303 ||
status === 307 ||
status === 308
) {
status = status + 10
}
return new Response(res.body, {
status,
headers: resHdrNew,
})
}
/**
* @param {URL} urlObj
*/
function isYtUrl(urlObj) {
return (
urlObj.host.endsWith('.googlevideo.com') &&
urlObj.pathname.startsWith('/videoplayback')
)
}
/**
* @param {URL} urlObj
* @param {number} newLen
* @param {Response} res
*/
async function parseYtVideoRedir(urlObj, newLen, res) {
if (newLen > 2000) {
return null
}
if (!isYtUrl(urlObj)) {
return null
}
try {
const data = await res.text()
urlObj = new URL(data)
} catch (err) {
return null
}
if (!isYtUrl(urlObj)) {
return null
}
return urlObj
}
或者下载JS文件用n++打开复制:点击下载
如果还觉得比较麻烦,那么就用别人搭的三条线路:
地址①:https://misty-disk-50cc.networkfreedom.workers.dev/
地址②:https://green-credit-9e7f.networkfreedom.workers.dev/
地址③:https://lucky-mountain-6e91.networkfreedom.workers.dev/
|
|
|
有效解决BT面板"nginx: [emerg] open()"问题(更换Nginx版本) |
Posted by: adahrzgj - 08-21-2022, 07:42 AM - Forum: VPS
- No Replies
|
 |
这个问题还是前几天网友反馈的问题,老蒋出去了比较忙都没有帮助他们处理,但是我都是提出解决办法他们去解决的,不过问题的解决过程我都记录下来。这个同学有在安装BT面板之后创建站点,发现站点无法运行,在重启Nginx有发现报错。
我让他截图看看,得到的错误提示是"nginx: [emerg] open( "/www/server/nginx/conf/enable-php.conf" failed"。
ERROR:检测到配置文件有错误请先排除后再操作
nginx: [emerg] open( "/www/server/nginx/conf/enable-php.conf" failed (2: No SuCh file or directory) in /www/server/nginx/conf/nginx.conf:.71
nginx: configuration file /www/server/nginx/conf/nginx.conf test failed
这里老蒋翻看之前的文章有记录到"解决LNMP环境nginx: [emerg] open()错误问题",这不直接给他看后直接懵圈,因为他不会脚本操作。而且我之前是LNMP脚本记录,不是BT面板。
于是我想到一个办法,让他更换不同版本的Nginx。检查当前的BT面板的Nginx版本,卸载掉之后,然后重新安装一个低版本的。安装完毕之后再重启Nginx发现没有报错,然后创建站点是没有问题的。
就这样,比较简单且不要用到脚本解决问题,解决了"nginx: [emerg] open()"问题。
|
|
|
|