V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  JerryYuan  ›  全部回复第 3 页 / 共 4 页
回复总数  73
1  2  3  4  
231 天前
回复了 tool2dx 创建的主题 宽带症候群 网线的颜色顺序重要吗?
@tool2dx 最近刚自己做了个 PoE 受电的交换机,了解了一些 PoE 相关的知识。

其实网线并不是直接接到网络接口芯片上的,而是四对线通过四个变压器和网络接口出来的线耦合在一起。于是就实现了网线的电势可以随意变化(其实最后还是靠电阻和地有关联),对于它是 48V(poe)还是 0V(非供电)并不重要。于是就可以在网线的线对之间搞出一个电压用来供电,通过网络变压器以后,变化的网络信号和恒定的供电电压就隔离开了。

因为百兆只用四根线,于是另外四根线就可以抽走直接通个电压,这种就是非标的 PoE ,简单粗暴,一头通个 12V 48V 220V(很危险,但能用,且很受二把刀弱电师傅欢迎),另一头的设备直接受电就能用。

但是到了千兆,8 跟线都要跑数据信号,就没有空闲的线给供电用了,只能抽出两组(4 线)同时传信号和供电,再在网络变压器分离,网络变压器网线侧中间抽头出来电源,对侧线圈出来数据信号。这种也可以直接加电做非标的 PoE ,但是非标 PoE 相当于网口一直带电,有些隔离不好或者不支持非标 PoE 的口子还是有可能被高电压打坏接口。

于是引出了 IEEE 的标准 PoE ,即两边还要加电源管理芯片(供电端 PSE,受电端 PD),决定线上要不要带电。PD 会和 PSE 协商,然后 PSE 才会让网线带电,这种一般是 48V ,PSE 检测到对端不支持 PoE 的话是会关掉电源输出的。这种也是 PoE 交换机使用的 PoE 模式。
246 天前
回复了 BaymaxK 创建的主题 程序员 这愚人节彩蛋...
话说哦,设置中明确提供一个全局彩蛋开关是不是会更好呢(只提供全局开关,不提供具体彩蛋的开关和信息),另外触发彩蛋后 hover 能给个提示并一键关闭全局彩蛋开关。这样既能保留彩蛋,又可以在严肃场合提前/及时关掉彩蛋。
如 12#所说,改过一版,基本只替换了 luci 读配置那些东西。
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
#
# Copyright (C) 2018 Aleksandr V. Piskunov <[email protected]>.
# Copyright (C) 2015-2018 Jason A. Donenfeld <[email protected]>. All Rights Reserved.
#
# This watchdog script tries to re-resolve hostnames for inactive WireGuard peers.
# Use it for peers with a frequently changing dynamic IP.
# persistent_keepalive must be set, recommended value is 25 seconds.
#
# Run this script from cron every minute:
# echo '* * * * * /usr/bin/wireguard_watchdog' >> /etc/crontabs/root

check_peer_activity() {
local iface=$1
local public_key=$2
local endpoint_host=$3
local endpoint_port=$4
local persistent_keepalive
local last_handshake
local idle_seconds

persistent_keepalive=$(wg show ${iface} persistent-keepalive | grep ${public_key} | awk '{print $2}')

echo "checking $1 $2 $3 $4..."

# only process peers with endpoints and keepalive set
echo 1
[ -z ${endpoint_host} ] && return 0;
echo 2
[ -z ${persistent_keepalive} -o ${persistent_keepalive} = "off" ] && return 0;
echo 3

# skip IP addresses
# check taken from packages/net/ddns-scripts/files/dynamic_dns_functions.sh
local IPV4_REGEX="[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}"
local IPV6_REGEX="\(\([0-9A-Fa-f]\{1,4\}:\)\{1,\}\)\(\([0-9A-Fa-f]\{1,4\}\)\{0,1\}\)\(\(:[0-9A-Fa-f]\{1,4\}\)\{1,\}\)"
local IPV4=$(echo ${endpoint_host} | grep -m 1 -o "$IPV4_REGEX$") # do not detect ip in 0.0.0.0.example.com
local IPV6=$(echo ${endpoint_host} | grep -m 1 -o "$IPV6_REGEX")
echo 4
[ -n "${IPV4}" -o -n "${IPV6}" ] && return 0;
echo 5

# re-resolve endpoint hostname if not responding for too long
last_handshake=$(wg show ${iface} latest-handshakes | grep ${public_key} | awk '{print $2}')
[ -z ${last_handshake} ] && return 0;
idle_seconds=$(($(date +%s)-${last_handshake}))
[ ${idle_seconds} -lt 150 ] && return 0;
logger -t "wireguard_monitor" "${iface} endpoint ${endpoint_host}:${endpoint_port} is not responding for ${idle_seconds} seconds, trying to re-resolve hostname"
wg set ${iface} peer ${public_key} endpoint "${endpoint_host}:${endpoint_port}"
}

# query ubus for all active wireguard interfaces
wg_ifaces=$(wg show interfaces | awk '{print $1}' | tr '\n' ' ')

# check every peer in every active wireguard interface
for iface in $wg_ifaces; do
config_file="/etc/wireguard/${iface}.conf"
# parsing wireguard config file
eval `cat $config_file | tr -d ' ' |awk -F '=' '
BEGIN {peer_index = 0;status = 0;}
# close previous peer section
status==1 && $1 ~ /^\[/ {status = 0;}
# open new peer section
status==0 && $1 == "[Peer]" {status = 1;peer_index++;}
# parse PublicKey in Peer section
status==1 && $1 == "PublicKey" {public_key = \$0;sub(/PublicKey=/, "", public_key);printf("public_key%d=%s\n", peer_index, public_key);}
# parse Endpoint in Peer section
status==1 && $1 == "Endpoint" {printf("endpoint%d=%s\n", peer_index, $2);}
END {printf("peer_count=%d\n",peer_index)}'`

for ((i = 1; i <= $peer_count; i++)); do
public_key_var="public_key$i"
endpoint_var="endpoint$i"
public_key="${!public_key_var}"
endpoint="${!endpoint_var}"

endpoint_host=`echo "${endpoint}"|awk -F '[:]' '{print $1}'`
endpoint_port=`echo "${endpoint}"|awk -F '[:]' '{print $2}'`
check_peer_activity "${iface}" "${public_key}" "${endpoint_host}" "${endpoint_port}"
done
done
IPv4 和 IPv6 本质上已经是两种互不兼容 IP 协议了,不然铺开 IPv6 就不需要花那么大力气去更新骨干网设备了。因为二者有血缘关系,所以有些好的设定是一脉相承的。但是切忌这俩有点像就把彼此的特性往自己身上套。
@didididididi 定制一个蓝色背景 KT 板,印上"您已进入视频监控区域",主打就是一个威慑是吧😂
@nealot 目前正在用 wireguard+ddns+wireguard_watchdog ,调好以后基本上就没掉过线。wireguard 能搞点对点连接,ddns 帮你记录动态变化的地址,wireguard_watchdog 是个从 openwrt 的 luci-proto-wireguard 里扣出来的脚本,用来定时检测每个 peer 的链路是否还活着,断掉的就强制重新解析然后更新地址。
这个脚本能实现不重启端口地更新地址恢复链路,恢复其中一个边不影响其他边的链路。

剩下的就是 11 楼写的,两边用不同的网段,直接 AllowIPs 允许转发都就通了。
303 天前
回复了 ahey 创建的主题 NAS 在 nas 上是优先套件还是 dockers?
Docker 隔离性好一些,容器里折腾不至于把宿主机折腾挂了,重新来过比较容易;套件就是所有套件进程混在一起,有可能会折腾挂宿主机,执行非常规操作前需要谨慎,但是因为不隔离,文件系统、网络栈上会少一些问题(当然 docker 熟悉了这点同样不是问题)。

作为 Linux 吹,我是推荐 Docker 的,而且 NAS 系统只管存储,额外开虚拟机/物理机挂载 NAS 的 NFS 跑应用。
要不搭个 gitlab(重量级) gitea(轻量级)直接代码托管一步到位?目前看这俩基本能做到私有化部署下替代 github 的操作。Gitlab 我记得也是有 Gist 类似功能的,就是吃资源一些。
313 天前
回复了 dc2002007 创建的主题 Java 为何不选 Hibernate,非要 MyBatis?
大概是 hibernate 不能方便的跨几个表联查/用 sql 的骚操作?

PS:可能只是我不知道怎么搞
322 天前
回复了 coinbase 创建的主题 问与答 人类是否和宇宙同寿?在原子层面
身体里那些因聚变产生的元素的原子有没有可能比宇宙年轻个 10 的负几次方秒?
@docx 既要又要的完美实践
337 天前
回复了 JerryYuan 创建的主题 程序员 如何在 Node 中实现类似于 docker-cli 的效果
破案了,是 python 的缓冲区,python 在 docker 里的时候会把 stdout 内容给缓冲了,然后外边 docker 实际没有收到任何 stdout,自然 node 也什么都没拿到.
340 天前
回复了 GuluMashimaro 创建的主题 程序员 公司项目要用区块链技术
@chendy 没毛病,然后再写段程序检查后边的 hash ,对不上的及时重算 hash 。(你就说用没用区块链吧😏
nginx proxy manager+wireguard
题主提的几个特性都有了:面板 转发 私有化部署 内网 IP
这也是我正在用的方案。
当然是先创建一个 banner.txt 啦(doge
@YaD2x
之前有个公开的,太老了,不太好用,后来就自己封装了一个:
```dockerfile
FROM jlesage/baseimage-gui:ubuntu-20.04-v4

# change to tsinghua mirror
RUN sed -i "s@http://.*archive.ubuntu.com@http://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list &&\
sed -i "s@http://.*security.ubuntu.com@http://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list

# install dependencies
RUN apt-get update
RUN apt-get install -y --no-install-recommends \
libgtk-3-0 \
libnotify4 \
libnss3 \
libxss1 \
xdg-utils \
libatspi2.0-0 \
libsecret-1-0 \
libxtst6 \
libx11-xcb1 \
libdrm2 \
libgbm1 \
libasound2 \
language-pack-zh-hans \
fonts-wqy-microhei


# install baidu netdisk linux version
COPY baidunetdisk_4.17.7_amd64.deb /tmp/
RUN dpkg -i /tmp/baidunetdisk_4.17.7_amd64.deb

# config VNC
RUN set-cont-env APP_NAME "百度网盘" && \
set-cont-env HOME "/home/app"
RUN APP_ICON_URL="https://www.baidu.com/more/img/wangpanlogo.png" &&\
install_app_icon.sh "$APP_ICON_URL"


# prepare configurations
RUN mkdir -p /home/app/Downloads && \
mkdir -p /config/appConfig && \
ln -s /config/appConfig /home/app/.config && \
chown -R 1000:1000 /home/app
COPY startapp.sh /startapp.sh

# for debug usage
#RUN apt-get install -y vim
```
startapp.sh:
```shell
#!/bin/bash

export HOME=/home/app
export LANG=zh_CN.UTF-8

exec /opt/baidunetdisk/baidunetdisk --no-sandbox
```
baidunetdisk_4.17.7_amd64.deb 是我提前下好的客户端安装包,去官网下载新的替换名字应该就行了。
百度网盘 linux 客户端泡在 docker 里的方案能忍么。。。体验上基本做到开箱即用。。。
2023-12-02 11:45:52 +08:00
回复了 yy306525121 创建的主题 宽带症候群 河南联通用 Nas 跑 PT 被限制上传了
上周给 NAT1 的宽带上钻了个洞,30M 上行小水管几乎能全天拉满,考虑 ISP 可能会检测,现在只敢开着 100KBps 的限速跑,毕竟我还得留着上传流量给老家电视的 jellyfin 客户端上传电影电视剧用😥
2023-11-29 09:32:41 +08:00
回复了 Windyzhou 创建的主题 Android 安卓之间怎么直接互传文件最快?以下是我试过的
@Windyzhou 打满链路带宽是没问题的,之前在高铁上开 WiFi6 热点跟朋友的 IPhone 同步照片,一两个 GB 的视频图片交换完大概一两分钟吧。
1  2  3  4  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5448 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 32ms · UTC 08:44 · PVG 16:44 · LAX 00:44 · JFK 03:44
Developed with CodeLauncher
♥ Do have faith in what you're doing.