一台linux通过另一台linux访问互联网-TinyProxy
参考:
- https://blog.csdn.net/weixin_41831919/article/details/113061317
- https://www.yuncongz.com/archives/1.html
- https://blog.csdn.net/aoc68397/article/details/101893369
环境:ubuntu 18.04
机器1: IP 219.216.65.252 (可以访问外网)
机器2: IP 202.199.6.202
目标: 让机器2通过机器1连上外网
什么是TinyProxy
Tinyproxy 是一个轻量级的 HTTP/HTTPS 代理服务器,设计简单且占用资源少,适合在内存和 CPU 资源有限的环境中运行。它的主要用途是作为网络间的中介,允许客户端通过它访问互联网资源,从而可以进行缓存、过滤、匿名和其他功能。
安装
sudo apt-get update
sudo apt-get install tinyproxy
配置(在机器1)
-
修改端口和允许远程连接的IP:
sudo vim /etc/tinyproxy/tinyproxy.confPort 8888#预设是8888 Port,你可以更改,我改成了9999
Allow 127.0.0.1#将127.0.0.1改成你自己的IP
#例如你的IP 是1.2.3.4,你改成Allow 1.2.3.4,那只有你才可以连上这个Proxy
#若你想任何IP都可以脸到Proxy在Allow前面打#注释$ cat /etc/tinyproxy/tinyproxy.conf |grep .*Port.* # Port: Specify the port which tinyproxy will listen on. Please note #Port 8888 Port 9999
Logfile (必须) 日志文件, 默认/var/log/tinyproxy/tinyproxy.log,在 LogFile 文件不存在时会警告,不会运行失败。具体设置的值可以通过命令在配置文件中查找:
$ sudo cat /etc/tinyproxy/tinyproxy.conf |grep .*pid.*PidFile "/run/tinyproxy/tinyproxy.pid" -
查看端口是否开放(应该和下面的一样):
$ netstat -ltnp |grep .*9999.* tcp 0 0 0.0.0.0:9999 0.0.0.0:* LISTEN 7611/tinyproxy tcp6 0 0 :::9999 :::* LISTEN 7611/tinyproxy如果没有打开,则使用iptables命令放开9999端口规则:
iptables -I INPUT -p tcp --dport 9999 -j ACCEPT再次用上面的命令测试即可。
参考: https://blog.csdn.net/weixin_41831919/article/details/113061317 -
启动代理(在机器1)
# 启动 service tinyproxy start # 重启 sudo service tinyproxy restart # 关闭 sudo service tinyproxy stop
测试
机器1上测试
# 本地
$ curl http://httpbin.org/get?show_env=1
{"args": {"show_env": "1"}, "headers": {"Accept": "*/*", "Host": "httpbin.org", "User-Agent": "curl/7.78.0", "X-Amzn-Trace-Id": "Root=1-664318e8-70126aea75c7a1c23c94e1a4", "X-Forwarded-For": "219.216.65.252", "X-Forwarded-Port": "80", "X-Forwarded-Proto": "http"}, "origin": "219.216.65.252", "url": "http://httpbin.org/get?show_env=1"
}
# 本地使用代理, 可以执行export http_proxy=''来清空
$ export http_proxy='219.216.65.252:9999'
$ curl http://httpbin.org/get?show_env=1
$ # 或者直接: curl -x 219.216.65.252:9999 http://httpbin.org/get?show_env=1
{"args": {"show_env": "1"}, "headers": {"Accept": "*/*", "Host": "httpbin.org", "User-Agent": "curl/7.78.0", "Via": "1.1 tinyproxy (tinyproxy/1.8.4)", "X-Amzn-Trace-Id": "Root=1-66431b0e-2bb370e5133d103260f0a670", "X-Forwarded-For": "219.216.65.252", "X-Forwarded-Port": "80", "X-Forwarded-Proto": "http"}, "origin": "219.216.65.252", "url": "http://httpbin.org/get?show_env=1"
}
在机器2上测试
# 另一台机器上测试
$ curl -x 219.216.65.252:9999 http://httpbin.org/get?show_env=1
{"args": {"show_env": "1"}, "headers": {"Accept": "*/*", "Host": "httpbin.org", "User-Agent": "curl/7.68.0", "Via": "1.1 tinyproxy (tinyproxy/1.8.4)", "X-Amzn-Trace-Id": "Root=1-66436e27-7b0e8400044872ed2ad4b3c9", "X-Forwarded-For": "219.216.65.252", "X-Forwarded-Port": "80", "X-Forwarded-Proto": "http"}, "origin": "219.216.65.252", "url": "http://httpbin.org/get?show_env=1"
}
对于机器2可以参考如下三种配置方法:
有三种常用方式:
①永久设置:
vim /etc/profile:
export http_proxy=‘http://代理服务器IP:端口号’
export https_proxy=‘http://代理服务器IP:端口号’
source /etc/profile
②临时设置(重连后失效):
也可以直接运行export http_proxy='http://代理服务器IP:端口号
export https_proxy=‘http://代理服务器IP:端口号’
注意:设置之后可能使用ping时还是无法连接外网,但是pip时可以的,因为ping的协议不一样不能使用这个代理
③单次设置:
直接在pip时设置代理也是可以的:
pip install -r requirements.txt --proxy=代理服务器IP:端口号
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/king_cpp_py/article/details/81192387
之后主机B的pip,conda,apt均可使用。
一些问题
$ service tinyproxy start
Failed to add /run/systemd/ask-password to directory watch: No space left on device:
参考:https://askubuntu.com/questions/828779/failed-to-add-run-systemd-ask-password-to-directory-watch-no-space-left-on-dev
由于watch数据数量被限制了。
使用root身份,立即修复是运行:
cat /proc/sys/fs/inotify/max_user_watches
echo 1048576 > /proc/sys/fs/inotify/max_user_watches
生产更多watch。
长期修复方法是编辑文件/etc/sysctl.conf以包含以下行:
fs.inotify.max_user_watches=1048576
相关文章:
一台linux通过另一台linux访问互联网-TinyProxy
参考: https://blog.csdn.net/weixin_41831919/article/details/113061317https://www.yuncongz.com/archives/1.htmlhttps://blog.csdn.net/aoc68397/article/details/101893369 环境:ubuntu 18.04 机器1: IP 219.216.65.252 (可以访问外网) 机器2: IP…...
探索数据结构:堆的具体实现与应用
✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:数据结构与算法 贝蒂的主页:Betty’s blog 1. 堆的概念 堆(Heap)是计算机科学中一类特殊的数据结构。堆通常是一个…...
网络2--MAC地址,IP地址的理解
引入: 每一张主机都会有一张网卡,每一张网卡都有一个48bit位的序列号 当我们的热点被连上,你查看时,就会出现MAC地址,IP地址 那么他们两个是什么呢??? MAC地址 在同一个局域网中…...
类型的转换
首先我们要了解java中的数据类型转换是指将一种数据类型转换成另一种数据类型的过程。 什么时候会用到?我觉得两种情况会用到 等号左右两边类型不一致(一般发生在赋值时)不同类型的数据参与运算(一般发生在计算时) 转…...
memset函数
让我们先看两个代码 memset(dp, 0x3f, sizeof(dp)); for (int i 0; i < 5; i)cout << dp[i] << " "; memset(dp, 127, sizeof(dp)); for (int i 0; i < 5; i)cout << dp[i] << " "; 代码结果如下: 现在我们来分…...
Java面向对象——多态
即同一个方法可以根据发送对象的不同而采用多种不同的行为方式。 一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多(父类,有关系的类)。 多态存在的条件: 1. 有继承关系; 2. 子类重写父类…...
python 对矩阵与矩阵之间对应位置的元素,做softmax操作,代码实战
1.对矩阵中对应位置的元素,做softmax 对于一个向量,softmax函数会对其中每一个元素进行指数运算,然后除以所有元素指数和的结果。当将其应用到多个矩阵的相应位置上时,我们实际上是在对每个位置的一组数(从各个矩阵的同…...
Angular前端项目在Apache httpd服务器上的部署
Apache Httpd和Tomcat主要区别:Tomcat是一个Java Servlet容器,用于运行Java Servlet和JavaServer Pages(JSP),而Apache HTTP服务器是一个通用的Web服务器,用于提供静态和动态内容。 Apache httpd安装&#…...
Oracle 更改数据文件位置的几种常用方式
Oracle 更改数据文件位置的几种常用方式 A.归档模式下 1、offline 表空间:alter tablespace tablespace_name offline; 2、复制数据文件到新的目录; 3、rename 修改表空间,并修改控制文件; 4、online 表空间…...
【opencv】图像畸变校正
接上篇文章:【鱼眼+普通相机】相机标定 附代码: 方法一: 使用cv2.undistort """Create May 11, 2024author Wang Jiajun """import cv2 import numpy as npdef correct(img,camera_fileE:/cali…...
Charger之二输入电压动态电源原理(VIN-DPM)
主要内容 Charger的VIN-DPM 前篇内容:电池管理IC(Charger)了解一下? 领资料:点下方↓名片关注回复:粉丝群 正文 一、 VIN-DPM概念 VIN-DPM是指输入电压动态电源管理(Input voltage dynamic…...
【半夜学习MySQL】表结构的操作(含表的创建、修改、删除操作,及如何查看表结构)
🏠关于专栏:半夜学习MySQL专栏用于记录MySQL数据相关内容。 🎯每天努力一点点,技术变化看得见 文章目录 创建表查看表结构修改表删除表 创建表 语法: create table table_name(field1 datatype,field2 datatype,fiel…...
曲线救国:window 安装 docker
你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益: 了解大厂经验拥有和大厂相匹配的技术等 希望看什么,评论或者私信告诉我! 文章目录 一…...
番外篇 | 利用PyQt5+YOLOv5来搭建目标检测系统(附可视化界面+功能介绍+源代码)
前言:Hello大家好,我是小哥谈。PyQt5是一个Python绑定的Qt库,是用于创建图形用户界面(GUI)和其他应用程序组件的工具包。PyQt5提供了许多GUI元素,如按钮、文本框、标签等,也提供了许多Qt的功能,如网络、数据库、XML等。通过PyQt5可以在Python中使用Qt的丰富功能和强大的工…...
Pascal Content数据集
如果您想使用Pascal Context数据集,请安装Detail,然后运行以下命令将注释转换为正确的格式。 1.安装Detail 进入项目终端 #即 这是在我自己的项目下直接进行克隆操作: git clone https://github.com/zhanghang1989/detail-api.git $PASCAL…...
【Unity】使用Resources.LoadAll读取文件的顺序问题
最近在做客户的一个项目,其中的一个模块使用到了照片,但是发现了一个很严重的问题。当你在使用Unity的时候,它竟然不按照顺序读取?这个机器人是不是逻辑有问题?如下图: 名字脱敏了哈。。。 照片比较多&…...
pdf怎么标注红色方框?五种PDF标注红色方框方法
pdf怎么标注红色方框?在当今数字化时代,PDF文档已成为我们日常工作和学习中不可或缺的一部分。然而,如何在海量的PDF文件中快速、准确地标注出重要信息,让内容更加醒目呢?今天,我将向大家介绍五种PDF标注红…...
C++字符串细节,面试题06
文章目录 22. 字符串22.1. 字符数组 vs 字符指针 vs 常量字符指针 vs string22.2. strcpy vs sprintf vs memcpy22.3. strlen vs length vs size vs sizeof22.4. 字符串之间的转换22.5 其他数据类型与字符串之间的转换22.6 字符串分割 22. 字符串 22.1. 字符数组 vs 字符指针 …...
AutoModelForCausalLM.from_pretrained 函数调用本地权重报错
文章目录 1、代码报错的位置(前情提要)finetune_lora.shfintune_clm_lora.py 2、报错截图2.1、huggingfaces上的 meta-llama/Llama-2-7b-chat-hf2.2、服务器上模型文件路径 3、特别注意事项 1、代码报错的位置(前情提要) 在终端直…...
【qt】动态属性
这里写目录标题 一.属性1.属性的好处2.添加属性3.使用属性 二.只读属性 一.属性 1.属性的好处 说到属性(property),你们会想到什么?我会联想到特点,就是一类对象所特有的,在C中,成员数据就是这…...
深度工程判断力 × Claude Code:老法师怎么用全链路 AI 原生开发把 5 人 2 个月的交付,1 个人 30 天做完
去年,如果一家公司说:“我们 80% 的代码是 AI 写的。” 你大概会点点头,心里想:行,PPT 先收一下,投资人已经在路上了。 但今天再听到这句话,反应变了:才 80%?为什么还有 …...
安卓APP通过JNI调用ATSHA204A加密芯片实战指南
1. 项目概述与核心需求解析 在安卓应用开发领域,尤其是涉及物联网、金融支付、版权保护等高安全要求的场景,单纯依靠软件层面的加密算法已经不足以应对日益复杂的攻击手段。硬件加密芯片,如ATSHA204A,以其物理隔离、密钥不可读取等…...
蓝桥杯嵌入式LCD显示避坑指南:sprintf函数格式化变量显示的正确姿势
蓝桥杯嵌入式LCD显示避坑指南:sprintf函数格式化变量显示的正确姿势 在蓝桥杯嵌入式竞赛中,LCD显示是基础但至关重要的环节。许多参赛选手在实现变量动态显示时,常常因为对sprintf函数的使用不当而陷入各种"坑"中——数据显示不全、…...
SOCD Cleaner:游戏按键智能优化工具,告别操作冲突的终极方案
SOCD Cleaner:游戏按键智能优化工具,告别操作冲突的终极方案 【免费下载链接】socd Key remapper for epic gamers 项目地址: https://gitcode.com/gh_mirrors/so/socd 在竞技游戏和动作游戏中,精准的操作响应是胜利的关键。然而&…...
灌封胶的热仿真困局:建模方法选择,如何不踩坑?
🎓作者简介:科技自媒体优质创作者 🌐个人主页:莱歌数字-CSDN博客 211、985硕士,从业16年 从事结构设计、热设计、售前、产品设计、项目管理等工作,涉足消费电子、新能源、医疗设备、制药信息化、核工业等…...
别再死记硬背了!用一张图+一个案例彻底搞懂PROFIBUS-DP的令牌环与主从通信
工业现场通信革命:从零图解PROFIBUS-DP令牌环与主从机制 第一次接触PROFIBUS-DP协议文档时,那些晦涩的术语和抽象的状态转换图让我在调试现场设备时屡屡碰壁。直到某天亲眼目睹PLC通过一串神秘的数据包精准控制阀门阵列,才意识到这套诞生于上…...
探索罗技鼠标宏:掌握PUBG压枪技术的完整路径
探索罗技鼠标宏:掌握PUBG压枪技术的完整路径 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 在《绝地求生》这款竞技性极强的射击游戏…...
BENTLY NEVADA 330980-51-00传感器测量系统
BENTLY NEVADA 330980-51-00 是一款本特利内华达出品的传感器测量系统,专用于旋转机械的振动、位移及转速监测,广泛应用于汽轮机、压缩机、风机等关键设备。中间:15条产品特点330980-51-00 采用涡流传感器原理,非接触测量…...
告别Rufus!在Ubuntu 22.04上用Ventoy打造你的万能Windows安装盘(附PE系统集成)
在Ubuntu 22.04上使用Ventoy打造全能Windows安装与维护工具盘 作为一名长期以Linux为主力系统的开发者,难免会遇到需要为朋友或备用机安装Windows的场景。传统方案往往要求我们临时切换到Windows环境使用Rufus等工具,既低效又违背Linux用户的习惯。本文将…...
企业级应用如何利用 TaoToken 构建高可用的大模型服务网关
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 企业级应用如何利用 TaoToken 构建高可用的大模型服务网关 应用场景类,探讨在中大型企业应用中,为内部多个…...
