- 楼主
- #22
EdgeInfinity的备忘录 #3215
- 楼主
- #23
- 已编辑
论坛专用css更新:
.buttonchat{
box-shadow: 0 0 5px #000;
transition:all 0.3s ease;z-index:998; position: fixed; right:12%;bottom:10%; width:75px; height:75px; border-radius:50%;color:white; background-color: #f7a1cf; border:none;
}
.buttonchat:hover{
box-shadow: 0 0 8px #000;
transition:all 0.3s ease;transform:scale(1.1);
}
.buttonchat:hover>chtip{
transition:all 0.3s ease;
display:none;
}
.buttonchat>chtip{
transition:all 0.3s ease;
font-size:36px;
}
.buttonchat:hover:after{
transition:all 0.3s ease;
font-weight:bold;
-webkit-text-stroke: 1px #754d63;
content:"Chat!";
}
.buttonchatL{
box-shadow: 0 0 5px #000;
transition:all 0.3s ease;z-index:997; position: fixed; right:12%;bottom:10%; width:50px; height:25px; border-radius:10% 75%;color:white; background-color: #f7a1cf; border:none;
transform: translateX(-35px) translateY(-75px) rotate(70deg);
}
.buttonchatL:hover{
box-shadow: 0 0 8px #000;
transition:all 0.3s ease;
transform: translateX(-32px) translateY(-75px) rotate(77deg);
}
.buttonchatL>chtipL{
transition:all 0.3s ease;
font-size:10px;
}
.buttonchatL:hover>chtipL{
transition:all 0.3s ease;
display:none;
}
.buttonchatL:hover:after{
transition:all 0.3s ease;
font-weight:bold;
-webkit-text-stroke: 1px #754d63;
content:"Disk!";
}
.buttonchatR{
box-shadow: 0 0 5px #000;
transition:all 0.3s ease;z-index:996; position: fixed; right:12%;bottom:10%; width:50px; height:25px; border-radius:75% 10%;color:white; background-color: #f7a1cf; border:none;
transform: translateX(10px) translateY(-75px) rotate(-70deg);
}
.buttonchatR:hover{
box-shadow: 0 0 8px #000;
transition:all 0.3s ease;
transform: translateX(7px) translateY(-75px) rotate(-77deg);
}
.buttonchatR>chtipR{
transition:all 0.3s ease;
font-size:10px;
}
.buttonchatR:hover>chtipR{
transition:all 0.3s ease;
display:none;
}
.buttonchatR:hover:after{
transition:all 0.3s ease;
font-weight:bold;
-webkit-text-stroke: 1px #754d63;
content:"Wiki!";
}
.DiscussionListItem-main mark {
background:#FFFF66 !important;
color: #f44336!important;
}
.ChatHeader
{
background-color: #f7a1cf !important; /* chat header color */
}
.ChatViewport
{
background-image: linear-gradient(to bottom right, #f7a1cf, #E0E0E0);
}
.ChatInput{
background-color: transparent; position:relative;bottom:-5%; width:100%;height:10px;margin:0 0 50px 0;
}
.cip{
position:relative;top:-20px;
}
.send{
top:-10px;
}
#open-file {
width: 100px;
height: 50px;
margin: auto;
border: 1px solid #5B5B5B;
border-radius: 5px;
background-color: #FCFCFC;
cursor: pointer;
}
#open-file:hover {
background-color: #F0F0F0;
}
.facog1{
color:#2c1c24; transition: all 0.2s;
}
.fa-volume-up{
color:#2c1c24; transition: all 0.2s;
}
.fa-bell-slash{
color:#2c1c24; transition: all 0.2s;
}
.fa-window-minimize{
color:#2c1c24; transition: all 0.2s;
}
.fa-angle-double-right{
color:#2c1c24; transition: all 0.2s;position:relative;top:-20px;
}
.fa-upload{
color:#2c1c24; transition: all 0.2s;position:relative;top:-20px;
}
.chlim{
position:relative;top:-20px;
}
.fa-cog:hover{
color:#62003e
}
.fa-volume-up:hover{
color:#62003e
}
.fa-bell-slash:hover{
color:#62003e
}
.fa-window-minimize:hover{
color:#62003e
}
.fa-angle-double-right:hover{
color:#f7a1cf;
}
.fa-upload:hover{
color:#f7a1cf;
}
.ChatList
{
background-color: #f7a1cf !important; /* chatlist background color */
.header {
background-color: #f7a1cf !important; /* chatlist header color */
}
.panel-preview
{
&:hover:not(.active) {
box-shadow: 0 0 0 3px #f7a1cf !important; /* primary hover color #94ddff*/
@media @phone {
background-color: #f7a1cf !important;
}
}
&.active {
box-shadow: 0 0 0 3px #ff6ac3 !important; /* primary color #94ddff*/
}
.message .sender {
color: #f7a1cf !important;
}
}
.panel-add {
&:hover {
box-shadow: 0 0 0 3px #f7a1cf !important;
}
}
}
@media @phone {
.NeonChatFrame.hidden {
margin-bottom: 52px;
}
}
@media (min-width:768px) and (max-width:999px) {
.Search-input input {
width: 30px;
max-width: 120px;
}
.Search.focused .Search-results,.Search.focused input {
width: 120px;
}
.Search.focused {
margin-left: auto
}
.Button-label {
.LinksButton-title {display:none}
}
}
@media (min-width:1000px) and (max-width:1099px) {
.Search-input input {
width: 120px;
max-width: 200px;
}
.Search.focused .Search-results,.Search.focused input {
width: 200px
}
.Search.focused {
margin-left: auto
}
}
@media (min-width:1100px) and (max-width:1399px) {
.Search-input input {
width: 225px;
max-width: 325px;
}
.Search.focused .Search-results,.Search.focused input {
width: 325px
}
.Search.focused {
margin-left: auto
}
}
@media (min-width:1400px) {
.Search-input input {
width: 325px;
max-width: 600px;
}
.Search.focused .Search-results,.Search.focused input {
width: 600px
}
.Search.focused {
margin-left: auto
}
}
@screen-desktop-hd-max: (@screen-desktop-hhd - 1);
@screen-desktop-hhd: 1400px;
@desktop-hd: ~"(min-width: @{screen-desktop-hd}) and (max-width: @{screen-desktop-hd-max})";
@desktop-hhd: ~"(min-width: @{screen-desktop-hhd})";
:root {--screen-desktop-hhd: 1400px;}
@media (min-width: 1400px){
.container {
width:1400px
}
}
.item-like .Button:before {
font-family:'Font Awesome 5 Free';
font-weight:600;
font-size:14px;
content:'\f164';
vertical-align:-1px;
margin-right:4px;
}
.item-reply .Button--link:before {
font-family:'Font Awesome 5 Free';
font-weight:600;
font-size:15px;
content:'\f3e5';
margin-right:4px;
vertical-align:-2px;
}
@media (min-width:999px){
.Post-actions {
position:absolute;right:1em;bottom:0.4em;
}
}
.item-bestAnswer{
button{
background-color:transparent;
color:#936c83;
font-weight:normal;
margin:0px 0px !important;
padding-left:13px;
padding-right:13px;
}
button:hover{background-color:transparent;color:#f7a1cf}
button:active{background-color:transparent;color:#f7a1cf}
.Button:before {
font-family:'Font Awesome 5 Free';
font-weight:600;
font-size:15px;
content:'\f5c0';
margin-right:4px;
vertical-align:-2px;
}
}
.Post{
.item-who-read-unread{
button{
i{position:relative;left:2px;}
span{display:none}
width: 36px;
text-align: center;
padding: 8px 0;
background: transparent;
border-radius: 18px;
}
button:hover{background-color:#181015}
button:active{background-color:#090608}
position:relative;
bottom:-3px;
left:-6px;
}
}
.AlertManager-alert{
.Alert--success{
-webkit-animation:fade-out 6s ease-in-out 0s 1 alternate forwards;
}
@keyframes fade-out {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
.Alert--error{
-webkit-animation:fade-loop 1.5s ease-in-out 0s infinite alternate forwards;
}
@keyframes fade-loop {
0%{opacity: 1;}
100%{opacity: 0.5;}
}
}
.item-moreTags {
a:before {
position:absolute;
color:#936c83;
font-family:'Font Awesome 5 Free';
font-weight:600;
font-size:15px;
content:'\f141';
left:0px;
}
}
@media (min-height:100px) and (max-height:1000px) {
.IndexPage-nav .item-nav{
max-height: calc(~"100vh - 190px") !important;
height: calc(~"100vh - 190px") !important;
}
}
里面有很多内容都已经用不上了, 但是又不敢随便删. 应该没什么大问题.
比起之前的优化了fof/best-answer
和clarkwinkelmann/flarum-ext-who-read
的按钮效果, 并且针对各个可能的分辨率进行了大量优化.
同理, 其它flarum也能用, 但是分辨率优化还得看具体情况才好.
23.11.22更新: 调整了clarkwinkelmann/flarum-ext-who-read
的显示效果.
24.1.11更新: 调整了sticky sidenav
的显示效果.
- 楼主
- #24
- 已编辑
我的主网关配置
镜像: https://disk.monika.love/s/ZVaSX
openwrt, 包含无线网卡的驱动和luci.
- 配置pppoe, 用isp给的账号密码就行.
- 如果你和我一样有多级路由, 把ipv6分配全部改成中继模式, 并且关闭一级路由的dhcp. 如果不是那就不管.
- 如果你和我一样有多级路由, 一定别忘了填静态路由表. 要路由一个网域, 一定要把长度带上, 一般是/24.
- 装ddns-go. 我觉得它比lucky靠谱一些.
- 装lucky去映射一些无关紧要的网段. lucky删除配置的时候会把后面的弄乱, 别放重要的映射在这里.
- 装nps, 当vpn去用. 转发端口数量有限的话问题不大.
- 配置无线. 很奇怪的是ax210只能用N模式发射, 但是这玩意能用就无所谓. 如果你真指望这个上网可以改地区码试试看.
- 对公网开放访问的服务必须用强密码. 我其实对我的密码也比较没底, 但是爆破和对表肯定弄不出来就行. 一定要看浏览器的密码泄露提醒.
- nps在openwrt上安装后, 需要自己去修改/etc/init.d/nps, 至少添加
boot() {}
命令, 不然会自启不了.
然后是提醒我自己的:
- 论坛服务的主端口是28991, 把它映射到后端的443. 另一个重要的映射是ftp, 21到21就行.
- 还有ftp的被动网域, 最好加在lucky的第一条, 选择39000-40000.
- 邮箱服务器的端口有25,110,143,465,587,993,995, 全部映射了就行.
- openwrt自己有samba4服务和vsftpd, 要转发就先关掉.
- 及时备份. openwrt的磁盘镜像很小, 备个份完全没损失. 最好每次修改后都备份.
- 楼主
- #25
- 楼主
- #26
如果需要成规模, 专业化或者客制化地部署远程桌面:
别用Rustdesk.
我本来是很喜欢Rd的, 今天自建了服务器打算换个id方便管理, 就去看了文档.
你猜怎么着?
这个项目最开始是2020年在v2ex出现的, 满口承诺着完全开源免费.
结果发布仅仅两个版本(114 115)之后就把改id的功能砍了, 加进了Pro.
不支持买断, 还在issue里面说我也要恰饭的. 搞得跟我不要恰饭的一样.
别的就算了 改id这种功能 都自建服务器了还要卡着?
更逆天的是, 美其名曰安全起见, 在12x版本后把社区里琢磨出来改id的办法给堵上了.
最最逆天的是, 把最开始没收费的114版本的服务端从github上删了. 要么交钱, 要么记随机数id.
我已经从我的所有工作配置里把rd删掉了, 之后打算自建一套novnc.
你可以说你免费给用社区版就是大恩大德了, 我是不吃你这套的.
- 楼主
- #27
- 已编辑
收录 Unihertz Titan UFS版刷机包: https://disk.monika.love/s/ORVHD
不会真的有人和我一样用这种键盘老古董吧.
因为受众实在太小, 所以资料和资源都非常难找. 但discord上非常有钻研精神的老哥们还是找官方弄到了这份ufs版的固件.
这个Titan的闪存有两个版本, 早期一些的是emmc5.1, 后面升级成了ufs2.0 固件就不一样了.
网上勉强能找到的固件只有emmc版本的, 我在这上栽了两个大跟头.
刷写任何错误版本闪存的固件都会导致无限重启循环, 而Titan的启动逻辑甚至都和一般安卓手机不一样…
- 如果你很不幸地陷入了无限重启, 像正常手机一样长按电源/电源+音量是没用的.
- 要脱离循环, 你首先需要在设备屏幕刚亮的时候, 就按住音量+. 不要按电源!
- 接下来你会进入一个"无命令"(no command)界面. 这里是第二个坑, 虽然有躺着的机器人图标, 但现在手机并不是fastboot. 我查了资料, 应该又是一种很罕见的"无指令recovery"模式.
- 接下来, 先按住电源键, 然后按下音量+, 不要拖太久. 接下来你就可以看到熟悉的recovery界面了.
- 然后就可以按正常手机的思路排障了, 该干啥干啥.
我上传的固件经过测试可以正常刷写magisk, 照正常流程就行.
只能说unihertz这破厂 真的是.
要不是它长得颇有黑莓风骨, 鬼还买它
- 楼主
- #28
收录 壮志凌云(Jets 'N Guns)黄金版: https://disk.monika.love/s/8roId
呃 这个跟技术就没什么关系了, 是一个老游戏.
如果你的童年里接触过这款 画风独特的横板飞行射击爽游, 打算回顾一下就玩吧.
现在看来剧情比较简单, 当个解压游戏还是挺好的.
顺便, 我自己玩的时候出现了"不能用快捷方式"的奇怪问题, 只能直接去点exe. 我猜它是在某处直接调用启动路径来读取资源文件了.
- 楼主
- #29
收录 破解的autocad: https://disk.monika.love/s/XmZHO
适合做3d. 我比较习惯用.
- 楼主
- #30
关于交叉编译到底能不能用多线程
在网上看到的说法, 很多人都说多核编译容易出问题, 但是并没有看到有什么人说出来到底是什么问题.
多核编译的优势实在明显, 那就是速度快太多了. 我用单核多核测试了很多次openwrt的编译, 然后:
- 多核编译应该不存在实质上的"导致问题". 用单核编译能一次成功的固件, 多核也可以.
- 多核编译最大的问题是日志. 如果其中一个线程发生致命错误, 剩下的线程不会停, 最终编译失败的时候你就找不到真正的问题在哪.
- 多核编译需要一个很理想的网络环境. 如果你对下载不太自信, 就单核去试试看再说.
- 一般而言很多编译是会被保留的. 如果你觉得固件的可靠性已经差不多了, 先多核走一次可能会总体上更快.
- 无论你怎么编, 一定加上要求输出详细日志的参数! 一定一定!
- 楼主
- #31
如何给你的pve虚拟机直通显卡
- 必须在宿主机中手动禁用显卡驱动
- 必须调整主板为q35, 直通显卡为pcie设备.
- 好像没有了.
- 楼主
- #32
- 已编辑
vGPU license的部署(docker): docker run -d -e DLS_URL=你可以持续访问此服务器的url -e DLS_PORT=这个url的port -p 这个url的port:443 makedie/fastapi-dls
我以为我之前说过来着, 居然没有. 也懒得详细解释了. 总之这个能用.
collinwebdesigns/fastapi-dls
也提供这个容器镜像.
容器是自带使用说明的, 你也可以直接去https://edgemonix.top:7070/-/readme
看.
- 楼主
- #33
一份535版本的vGPU驱动: https://disk.monika.love/s/7aWij
实测可以用, 不太远古的gpu, 基本上帕斯卡以后的都能装.
需要的东西里面都有, 怎么处理那个证书服务器就看你自己的了.
- 楼主
- #34
如何让openwrt正确地分配ipv6地址:
- 服务器模式-服务器模式-混合模式. 有时候多层路由下, 同一个设备会被分配多个ipv6地址, 一般来说不打紧.
- dhcp一定要开! 就算你不打算真的用它的dhcp也一定要开, 关闭动态dhcp即可.
- 一定不要动wan6! 就算你看不懂它到底在干什么/觉得它啥也没干, 如果你的接口项目表里面已经有至少一个可用的ipv6了, 那就别动wan6!
- 如果你真的动了wan6, 往往就只能删掉wan重建了. 一般会顺带把wan6生成出来. 如果还没有就回档.
- 楼主
- #35
给pptp整了半天没法正常连接, 最后用ubuntu直接就连上了. 然后才意识到服务端没问题.
- 作为客户端的测试设备, 一定优先用ubuntu或者kali. centos容易出现奇怪的问题.
- 作为服务端, 如果你自信就用centos吧.
- 别相信windows自带的任何网络功能. 就是别相信.
- 楼主
- #36
- 楼主
- #37
赛扬的处理器是不适合做核显直通的, 最好别想了.
说的就是你, n5105. 这些东西老老实实用网页, 或者干脆hyperv.
- 楼主
- #38
- 已编辑
炮制纯净无广告版的netdata docker:
docker-compose.yml
version: '3'
services:
netdata:
image: netdata/netdata
container_name: netdata
pid: host
restart: unless-stopped
cap_add:
- SYS_PTRACE
- SYS_ADMIN
security_opt:
- apparmor:unconfined
volumes:
- ./nd/ndweb:/usr/share/netdata
- ./nd/ndconfig:/etc/netdata
- ./nd/nddata:/var/lib/netdata
- ./nd/ndcache:/var/cache/netdata
- /etc/passwd:/host/etc/passwd:ro
- /etc/group:/host/etc/group:ro
- /etc/localtime:/etc/localtime:ro
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /etc/os-release:/host/etc/os-release:ro
- /var/log:/host/var/log:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
- DO_NOT_TRACK=1
- DISABLE_TELEMETRY=1
- NETDATA_DISABLE_CLOUD=1
- NETDATA_REQUIRE_CLOUD=0
ports:
- "19999:19999"
./nd/ndweb/web/index.html
<script language="javascript"type="text/javascript"> window.location.href="v1"; </script>
rm -rf ./nd/ndweb/web/v2
更适合赛博洁癖体质.
就不登录, 就不更新, 就不看你的推广, 嘻嘻
- 楼主
- #39
- 已编辑
- 楼主
- #40
如果服务器没有稳定的ipv6, 就不要给ftp一个存在AAAA的域名.
我懒得重复一遍为什么了. 这个问题太弱智了.
- 楼主
- #42
不要相信任何"自动打开端口"的插件, 至少是最好别相信. 自己在防火墙里写一遍吧.
- 楼主
- #43
- 已编辑
捐赠页面iframe的php代码, 我自己写(缝合)的:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Donations</title>
<link rel="icon" href="./favicon.ico" type="image/x-icon">
<style type="text/css">
p {overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
font-size: 12px;
}
table {table-layout: fixed;
width: 950px;
left:50%;
border-spacing: 0px 10px;
}
body {justify-content: center;
display: flex;
}
img {
border-radius:50%;
left:7px;
position: relative;
}
</style>
</head>
<?php
function getByPage($pagenum,$perpage){
$user_id = "你自己的userid";
$params = json_encode(['page' => $pagenum, 'per_page' => $perpage]);
$ts = time();
$token = '你自己的爱发电开发者token';
$sign = md5(join("",array($token,'params',$params,'ts',$ts,'user_id',$user_id)));
$data = json_encode(["user_id" => $user_id, "params" => $params, "ts" => $ts, "sign" => $sign]);
$opts = array('http' => array('method' => 'POST', 'header' => 'Content-type: application/json' . 'Content-Length: ' . strlen($data) . '\r\n', 'content' => $data));
$context = stream_context_create($opts);
$html = file_get_contents('https://afdian.net/api/open/query-sponsor', false, $context);
return $html;
}
$html = json_decode(getByPage(1,24),true);
#echo $html;
$list_temp = $html;
$count = $list_temp['data']['total_count'];
$pagestoask = intval($count/24)+1;
for ($j=1;$j<$pagestoask;$j++){
${'html'.$j} = json_decode(getByPage($j+1,24),true);
$html = array_merge_recursive($html,${'html'.$j});
}
$list = $html;
#echo json_encode($html);
function cmp($a, $b)
{
if ($a == $b) {
return 0;
}
return ($a < $b) ? 1 : -1;
}
foreach ($list['data']['list'] as $m => $n){
$purctime[$m]['oritime'] = $n['last_pay_time'];
$purctime[$m]['oriid'] = $m;
}
usort($purctime,'cmp');
foreach ($purctime as $key => $value) {
#echo "\$purctime[$key]['oritime']: " . $value['oritime'] . "<br>";
#echo "\$purctime[$key]['oriid']: " . $value['oriid'] . "<br>";
$list['data']['list'][$value['oriid']]['align_id_edge'] = $key;
#echo $list['data']['list'][$value['oriid']]['align_id_edge'];
}
#echo $list;
#echo $count;
echo "<table border='0' cellspacing='0'><tr>";
foreach ($list['data']['list'] as $k => $v){
$list2[$v['align_id_edge']] = $v;
}
#echo json_encode($list2);
for ($i=0;$i<24 && $i<$count;$i++){
$m = $i;
$n = $list2[$m];
#echo $m;
${"tbline".$m} = "";
if (!($m%8)){
echo "</tr><tr>";
}
${"all".$m} = $n;
#echo $k . "\n";
#echo json_encode(${"all".$k}["user"]) . "\n";
${"id".$m} = json_encode(${"all".$m}["user"]["user_id"]);
${"name".$m} = str_replace("爱发电用户_","",trim(json_encode(${"all".$m}["user"]["name"], JSON_UNESCAPED_UNICODE),'\"'));
${"avatar".$m} = json_encode(${"all".$m}["user"]["avatar"]);
echo "<td><img src=${"avatar".$m} height='75px' width='75px' ></img>\n<p align=center>${"name".$m}</p></td>";
}
echo "</tr>";
#$name = $list['data']['list'][1]['user'];
#echo json_encode($name);
?>
我的代码会从接口拉取全部捐赠者, 并按最后捐赠时间重新排序. 官方没有做这个功能, 属于是脑血栓中的脑血栓.
翻页懒得做了, 毕竟没谁会想翻页看这个. 链接也是同理, 自己写并不难.
我写的很多地方很冗杂或者怪异, 属于是能跑就行的典范. 最好别学我.
应该只适用于爱发电, 但是改改接口也能干别的. 看你自己的需要了.
- 楼主
- #44
- 已编辑
pve纯虚拟化(不用u盘)安装unraid
- 下载unraid6.12:https://disk.monika.love/s/RLGuD (转自恩山)
- 创建虚拟机, 不要引导介质, 划一块2g左右的硬盘, 系统类型可以选windows.
- 删掉tpm和efi, 重建一块efi, 注意去掉"pre-enrolled key"的选项, 不然会读不到unraid的efi.
- 这里假设你的虚拟机编号是100, 且没有其它项目占用loop盘符(一般都不会有).
- 宿主机控制台:
losetup -P /dev/loop0 /dev/pve/vm-100-disk-0 && mkdir /tmount
- 宿主机控制台:
parted /dev/loop0
, 创建分区, 分区表为GPT, 分区类型为FAT32, 然后mkfs.vfat /dev/loop0p1
- 宿主机控制台:
mount /dev/loop0p1 /tmount
- 解压unraid, 用xftp把里面的所有东西传进宿主机的
/tmount
目录. - 宿主机控制台:
mlabel -i /dev/loop0p1 ::UNRAID
- 宿主机控制台:
cd / && umount /tmount && losetup -d /dev/loop0
- 虚拟机-硬件, 确认bios类型是OVMF/UEFI, 机型是q35. 然后虚拟机-选项, 把硬盘设置为第一启动顺序.
- 启动试试看吧.
- 楼主
- #45
- 已编辑
在flarum中使用css3 calc():
我是在修改sticky sidenav左侧栏高度的时候遇到了这个问题, calc(75vh - 25px)居然被变成了50vh.
这个问题的原因是flarum使用了一个叫less的样式管理程序(而且似乎版本很旧). less会自动处理一遍css的内容.
而less的规则不允许不同单位进行运算, 所以会自动统一为第一个单位(hv), 不看调试器还发现不了.
解决办法: ~"code"可以要求less跳过不处理引号内的字段, ~'code'也可以.
所以, calc(~"75vh - 25px")即可.
- 楼主
- #46
开启ip forwarding的设备就可以被静态路由视为路由器了.
如果还是不行, 先把防火墙关掉再说!
- 楼主
- #47
- 已编辑
收录:关于点对点协议与iptables的恩怨情仇的一篇文章
https://www.cnblogs.com/osnosn/p/10703841.html
自己留着备用.
这个配置是在保证网络本身安全的前提下设定的, 也就是说并不防入侵. 生产环境下需要谨慎处理.
- 楼主
- #48
- 已编辑
iptables需要iptables-save
才能保存下来, 不然重启就没了!
需要自动装载的话还要装一个软件包, 网上搜就是.
- 楼主
- #49
最近css和js改动有点频繁, 暂时不在帖子里更新了.
稳定下来之后我会传到网盘.
- 楼主
- #56
realtime无法正常推送帖子的问题已经被定位且修复.
修复方案是砍掉ip查询功能. 它的逻辑写得很有问题, 直接从_SERVER参数获取地址, 相当于直接把代理机的地址给获取去了. 不知道为什么这会导致查表中ip变成null. 干脆把所有ip写死了.
这样改动之后应该关闭u/v功能选项.
- 楼主
- #57
- 楼主
- #58
收录修改: 七牛云/又拍云自动更新cdn证书: https://disk.monika.love/s/KRZUP
不做说明, 用得上这玩意的人肯定自己看得懂.
又拍自动续签泛域名要收999, 贼恶心, 用这个+acme/宝塔自动签发都可以搞定.
项目原地址: https://github.com/Angel-fund/sslmanage. 稍微修改了一下占位. 只用又拍的话运行test.py就行.
- 楼主
- #59
目前最新版的dcc chat: https://disk.monika.love/s/a4NSR
更新内容基本上就是去掉了第一次点确定的问题.
数据库目录和密码都在里面, 我懒得删了, 反正外部访问不到. 自己要用的话记得改.
真几把累啊.
或许会在什么时候加上头像同步的功能, 想找罪受了的话.
- 楼主
- #60
如何正确地在2024年在手机上使用tf卡:
adb shell
su
sm list-disks
sm partition disk:179,0 mixed 80
拔出来, 上读卡器, 用diskgenius重新格式化exfat分区
然后插回去就行了
- 楼主
- #61
如果设备此前有过adoptable分区, 备份的应用就必须要设备有adoptable的情况下才能被还原.
这个外存的盘符, 挂载点, 大小并不重要.
- 楼主
- #62
终于学会了部署l2tp/ipsec, 可喜可贺.
问题出在端口转发上.
用于网络相关用途的docker, 尽可能使用host网络.
端口转发很多时候都是会出问题的.
- 楼主
- #63
与rocket chat样式表有关的目录:
/app/bundle/programs/web.browser/dynamic/node_modules/@rocket.chat/ui-theming/src
/app/bundle/programs/server/npm/node_modules/@rocket.chat/ui-theming/src
- 楼主
- #64
- 楼主
- #65
- 楼主
- #66
composer update
并不是刷新仓库! 千万别乱update!
- 楼主
- #67
- 已编辑