1.asp 读åå
ç½IPå°å
2.用Ngrok实现内网穿透
3.onnxruntime源码学习-编译与调试 (公网&内网)
4.Docker源码安装附内网镜像安装演示
5.一文搞懂frp内网穿透并搭建配置使用
6.别人手上有拷贝我的内网内网源码,是调试调试不是可以随时修改我的软件什么的?
asp 读åå ç½IPå°å
å¦æä½ çæå¡å¨å°±å¨å ç½ä¸ï¼å®¢æ·ç«¯IPå¯ä»¥ç¨<%=Request.ServerVariables("REMOTE_ADDR")%>
è·åã
å¦æä½ çæå¡å¨ä¸å¨å ç½ä¸ï¼å¨å®¢æ·ç«¯ç¨ASPæ¯è¯»åä¸å°å ç½IPå°åçï¼è·åçæ¯è¿æ¥å¤ç½çè·¯ç±å¨IPå°å
用Ngrok实现内网穿透
Ngrok简介:
Ngrok是用于内网穿透的开源软件,它的源码源码1.x版本存在内存泄漏问题,从2.x版本开始转向闭源。内网内网其工作原理是调试调试:服务器端运行于拥有公网IP的服务器上,监听/inconshrevea...
2. 外网服务器:配备公网IP的源码源码sonar扫描源码服务器,需设置子域名(A、内网内网CNAME)。调试调试
3. 内网客户端:可以是源码源码虚拟机,本文以Ubuntu .为例。内网内网
准备编译环境:
1. 安装go:使用命令`sudo apt install golang`。调试调试
2. 安装git:通过命令`sudo apt install git`实现。源码源码
3. 生成自签名证书:执行`cd ngrok`至项目目录,内网内网设置服务器域名`NGROK_DOMAIN="ngrok.abc.com"`。调试调试然后依次运行`openssl genrsa -out rootCA.key `、源码源码`openssl req -x -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days -out rootCA.pem`、`openssl genrsa -out device.key `、`openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr`、`openssl x -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days `。
4. 将证书复制到指定文件夹:`cp rootCA.pem ../assets/client/tls/ngrokroot.crt`、`cp device.crt ../assets/server/tls/snakeoil.crt`、`cp device.key ../assets/server/tls/snakeoil.key`。
编译服务器和客户端:
1. 服务器编译:在Linux系统中,使用命令`GOOS=linux GOARCH= make release-server`(位)或`GOOS=linux GOARCH=amd make release-server`(位),针对Mac OS和Windows系统,分别使用相应命令进行编译。st库3.50源码
2. 客户端编译:根据系统类型,执行`GOOS=linux GOARCH= make release-client`(位)或`GOOS=linux GOARCH=amd make release-client`(位),同样包括Mac OS和Windows系统。
编译完成后,服务器和客户端程序将被生成在bin文件夹中。
运行服务器:
将`ngrokd`程序复制至服务器指定目录,若端口被占用可更改端口号,并确保开启防火墙并打开端口允许外网访问。具体操作参考相关文章。
开启服务器命令:`./ngrokd -domain="ngrok.abc.com" -`即可转发至`ngrok.abc.com:`。
onnxruntime源码学习-编译与调试 (公网&内网)
在深入学习ONNX Runtime的过程中,我决定从1.版本开始,以对比与理解多卡并行技术。为此,我选择了通过`./tools/ci_build/build.py`脚本进行编译,而不是直接执行`build.sh`,因为后者并不直接提供所需的参数。在`build.py:::parse_arguments()`函数中,我找到了可选择的参数,例如运行硬件(CPU/GPU)、调试模式(Debug/Release)以及是否并行编译。我特别使用了`--skip_submodule_sync`,以避免因与公网不通而手动下载“submodule”,即`./cmake/external`文件夹下的依赖组件。这样可以节省每次编译时检查依赖组件更新的麻雀复利指标源码时间,提高编译效率。同时,我使用`which nvcc`命令来确定`cuda_home`和`cudnn_home`的值。
我的编译环境配置为gcc8.5.0、cuda.7和cmake3..1,其中cmake版本需要不低于3.,gcc版本则至少为7.0,否则编译过程中会出现错误。在编译环境的配置中,可以通过设置PATH和LD_LIBRARY_PATH来指定可执行程序和动态库的路径。对于手动下载“submodule”的不便,可以通过先在公网编译cpu版本,然后在编译开始阶段由构建脚本自动下载所有依赖组件并拷贝至所需目录来简化流程。
编译顺利完成后,生成的so文件并未自动放入bin目录,这可能是由于在安装步骤后bin目录下才会出现相应的文件。接下来,我进入了调试阶段,使用vscode进行调试,最终成功运行了`build/RelWithDebInfo/onnxruntime_shared_lib_test`可执行文件。
在深入研究ONNX Runtime的编译流程时,我发现了一个更深入的资源,它涵盖了从`build.sh`到`build.py`再到`CmakeList.txt`的编译过程,以及上述流程中涉及的脚本解析。对这个流程感兴趣的小程序全源码读者可以进行更深入的研究。
在编译过程中,我遇到了一些问题,如下载cudnn并进行安装,以及解决找不到`stdlib.h`的问题。对于找不到`stdlib.h`,我通过查阅相关文章和理解编译过程中搜索路径的逻辑,最终找到了解决方案。如果忽略这个问题,我选择在另一台机器上重新编译以解决问题。
在使用vscode调试时,我遇到了崩溃问题,这可能是由于vscode、gdb或Debug模式编译出的可执行文件存在潜在问题。通过逐步排除,我最终确定问题可能出在Debug模式编译的可执行文件上。这一系列的探索和解决过程,不仅加深了我对ONNX Runtime的理解,也提高了我的调试和问题解决能力。
Docker源码安装附内网镜像安装演示
系统版本要求源码包下载
官网下载地址(download.docker.com/lin...)
我这里已docker-...tgz该版本做演示
1.下载源码包文件到本地
2.通过远程连接工具(xShell、SecureCRT等将源码包文件上载到服务器自定义目录)
3.解压文件
4.配置docker为service服务
5.添加可执行权限
注:如遇到启动不成功可通过状态查询、/var/log/messages/运行日志或直接使用dockerd命令查看错误信息,如还解决不了建议服务器重启一下在运行docker启动命令
6.配置镜像加速
7.检查安装版本内网下载镜像
注:使用docker pull拉取镜像的时候需要网络,但是项目部署一般都是在内网。内网访问不了外网,所以需要在外网环境下把需要的c 底层框架 源码镜像拉取下来打包,然后拷贝到内网,载入到内网的docker
1.在外网机器上拉取mysql镜像,可以看到外网的docker已经拉取了镜像。
2.将镜像打包成tar压缩包
3.将打包好的mysql镜像包通过远程工具下载到本地
4.拷贝到内网linux服务器并载入docker
docker基础命令使用(扩展)下载镜像:(hub.docker.com/search/官网镜像地址)
docker pull [IMAGE_NAME]:[TAG] #命令格式
docker pull mysql:8.0 #下载mysql8.0镜像(不指定默认下载最新版本)
查看当前镜像版本
docker -v #查看当前安装版本
docker version #查看版本信息
docker info #查看系统信息
docker images #查看当前镜像
docker search 镜像名 #搜索镜像
镜像、容器删除
docker rm 容器ID
docker rm 容器名字
docker rmi 镜像ID
docker rmi 镜像名
docker rmi -f 镜像ID #强制删除
创建网络及数据卷
docker volume create +数据卷名称
docker volume list #查看当前数据卷信息
docker network create -d bridge +网络名称
docker network ls #查看当前网络
docker inspect containername +id #查看容器的hash值
启动、关闭容器
docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2) #关闭所有容器
docker start $(docker ps -a | awk '{ print $1}' | tail -n +2) #开启所有容器
杂
docker inspect 容器ID (使用该命令重点关注容器ip) #查看容器/镜像元数据
docker exec #在运行的容器中执行命令
docker exec -it 容器ID /bin/bash #以交互模式开启伪终端
一文搞懂frp内网穿透并搭建配置使用
实现内网穿透主要依赖公网服务器与内网服务器之间的连接。本文将介绍frp,一款专注于内网穿透的高性能反向代理应用,支持TCP、UDP、HTTP、HTTPS等协议,让内网服务能安全、便捷地通过具有公网IP节点的中转暴露到公网。
内网穿透的应用场景广泛,如远程访问家庭电脑、NAS、树莓派、摄像头等网络设备,或实现远程控制。
frp的安装与配置相对简单。首先,前往官方项目地址(github.com/fatedier/fr…)获取源代码。然后,在服务器中执行下载、解压、移动至/usr/local等操作。服务器配置文件(frps.ini)与客户端配置文件(frpc.ini)分别用于服务端与客户端配置。
配置服务端时,创建并编辑frps.ini文件,设置好路径、监听端口等信息。服务端启动后,可通过systemctl进行控制,实现启动、停止、重启、查看状态等操作。同样地,客户端需根据frpc.ini文件进行配置,并通过启动frpc命令进行运行。
访问内网服务时,只需运行服务后输入**custom_domains:vhost_http_port**访问即可。连接内网SSH服务亦可通过ssh工具直接连接,远程连接Windows电脑(RDP)需开启远程桌面功能,然后使用RDP连接即可。远程连接Mac电脑(VNC)则需配置Mac系统共享功能。
为确保系统稳定运行,可以将frp注册为系统服务,以实现开机自启。在Windows系统中,推荐使用winsw进行服务注册。Mac系统中,则需在内网Mac系统中执行特定操作,包括配置frpc.plist文件,以实现开机自启。
若需访问http服务时,避免每次输入端口的繁琐操作,可以设置Nginx进行转发。在客户端配置文件中添加域名,并确保域名解析至公网IP。配置泛域名时,需注意frps配置与subdomain_host的关系。
在配置与使用过程中,可能会遇到一些问题,如服务端与客户端启动失败、服务端启动报错、Vue项目出现Invalid Host header等问题。遇到启动失败时,检查文件执行权限;若服务端启动报错,可能是因为下载了与操作系统架构不匹配的文件,需重新下载正确的文件,并通过arch、uname -a等命令查看系统架构;对于Vue项目中出现的Invalid Host header问题,可在vue.config.js文件中增加disableHostCheck属性以解决。
别人手上有拷贝我的源码,是不是可以随时修改我的软件什么的?
我也是做软件的,你担心的情况是不存在的。你委托第三方开发的软件,对方有源码是一个正常的事情。
你的软件运行在你的电脑上(服务器上),第三方理论上是拿不到你服务器相关设置的权限,也就无法修改你的软件代码。
即使被黑客攻击,导致服务出现故障,那也是服务器安全设置有问题,需要修复相关漏洞即可。
给你打个比方:一个炉子产出了两个烧饼,你一个,对方一个;他怎么吃他的那个饼,跟你的饼有影响吗?
放心吧,好好做自己的事情,计算对方使坏,你还有法律武器呢。
7. 用Rust手把手编写一个wmproxy(代理,内网穿透等), HTTP及TCP内网穿透原理及运行篇
内网与公网的差异:
内网通常指的是局域网环境,包括家庭、网吧、公司、学校网络,网络内部的设备可以互相访问,但一旦越出网络,无法访问该网络内的主机。公网则泛指互联网,是一个更大规模的网络环境,拥有单独的公网IP,任何外部地址可以直接访问,从而实现对外服务。
内网穿透的需求与场景:
场景一:开发人员本地调试接口,线上项目遇到问题或新功能上线,需要进行本地调试,且通常需要HTTP或HTTPS协议支持。
场景二:远程访问本地存储或公司内部系统,如外出工作或需要远程访问本地的私有数据,如git服务或照片服务等。
场景三:本地搭建私有服务器,为减少云上服务器高昂的费用,使用本地电脑作为服务器,满足对稳定性要求较低的场景。
内网穿透原理:
内网穿透通过在内网与公网之间建立长连接,实现数据转发,使外部用户能够访问到内网服务器的数据。客户端与服务端保持长连接,便于数据的推送,实质上是在转发数据以实现穿透功能。
Rust实现内网穿透:wmproxy工具实现简单易用的内网穿透功能。客户端与服务端分别配置yaml文件,启动程序以实现穿透。
HTTP与TCP内网穿透测试:
在本地端口启动一个简单的HTTP文件服务器,端口实现HTTP内网穿透,将流量映射到端口,通过访问http://.0.0.1:或http://localhost:验证穿透成功。TCP内网穿透在端口转发到端口,验证通过访问http://.0.0.1:或http://localhost:实现穿透。
源码实现与监听:
在程序启动时根据配置监听相应端口,对于HTTPS转发需要配置证书升级连接。HTTP与TCP转发分别在trans/http.rs和trans/tcp.rs类中实现,其中HTTP类需处理头文件消息,TCP类则实现简单的数据转发。
HTTP与TCP转发源码示例:
HTTP转发部分代码展示了初步实现的HTTP服务,以适应HTTP2协议。TCP转发则涉及接收数据并完全转发到新端口的简单过程。
后续优化:计划优化HTTP处理,支持HTTP头信息重写和TCP错误信息正确日志记录,方便问题定位。
2024-12-28 19:32
2024-12-28 19:29
2024-12-28 18:58
2024-12-28 18:38
2024-12-28 18:23
2024-12-28 18:03