V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  JerryYuan  ›  全部回复第 3 页 / 共 4 页
回复总数  79
1  2  3  4  
代理工作在 OSI 模型相当高的位置上,甚至能算到工作在 HTTP 协议层(应用层)之上。协议所在层动手脚只会影响工作在其上层的协议,不影响平级或底层的协议。
177 天前
回复了 13240284671 创建的主题 程序员 centos7 selenium 环境咋配置
docker 解君愁
207 天前
回复了 qaqLjj 创建的主题 问与答 你有哪些「这钱花的真他妈值」的瞬间
当年高中读了个私立高中,一年学费 8 千,三年老爹给花了 2 万 4 ,从中考 490 高中三年逆袭高考 640 ,出分那天老爹感叹到:"这 2w4 花的真值"
借楼问一下,这种门禁/楼宇对讲机有什么标准么,家里是个网线的,物业提供 POE 给对讲机供电和网络信号。
有个想法把这个网络接到自己的软路由里(会划一个独立的网络,防火墙堵死和内网的互联),软路由部署一个什么程序,可以代理那边的楼宇对讲流量和开门请求,虽然有一定的软件开发能力,但是不知道这玩意一般按什么通信标准,协议是啥,也就不知道应该从哪入手了。
216 天前
回复了 yeqizhang 创建的主题 Windows win10 关机是假关机吗?
@xmz8888 休眠应该是内存完整 dump 到磁盘,恢复时应用程序也都还在;假关机应该是只有内核或者系统必需的内存 dump 到磁盘,恢复时应用程序的内存已经没了,只能靠重新启动应用来恢复
249 天前
回复了 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 模式。
264 天前
回复了 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 允许转发都就通了。
321 天前
回复了 ahey 创建的主题 NAS 在 nas 上是优先套件还是 dockers?
Docker 隔离性好一些,容器里折腾不至于把宿主机折腾挂了,重新来过比较容易;套件就是所有套件进程混在一起,有可能会折腾挂宿主机,执行非常规操作前需要谨慎,但是因为不隔离,文件系统、网络栈上会少一些问题(当然 docker 熟悉了这点同样不是问题)。

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

PS:可能只是我不知道怎么搞
340 天前
回复了 coinbase 创建的主题 问与答 人类是否和宇宙同寿?在原子层面
身体里那些因聚变产生的元素的原子有没有可能比宇宙年轻个 10 的负几次方秒?
@docx 既要又要的完美实践
355 天前
回复了 JerryYuan 创建的主题 程序员 如何在 Node 中实现类似于 docker-cli 的效果
破案了,是 python 的缓冲区,python 在 docker 里的时候会把 stdout 内容给缓冲了,然后外边 docker 实际没有收到任何 stdout,自然 node 也什么都没拿到.
357 天前
回复了 GuluMashimaro 创建的主题 程序员 公司项目要用区块链技术
@chendy 没毛病,然后再写段程序检查后边的 hash ,对不上的及时重算 hash 。(你就说用没用区块链吧😏
1  2  3  4  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2659 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 33ms · UTC 07:21 · PVG 15:21 · LAX 23:21 · JFK 02:21
Developed with CodeLauncher
♥ Do have faith in what you're doing.