一台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)

  1. 修改端口和允许远程连接的IP

    sudo vim /etc/tinyproxy/tinyproxy.conf
    

    Port 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"
    
  2. 查看端口是否开放(应该和下面的一样):

    $ 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

  3. 启动代理(在机器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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/625976.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

文本换列新手教程:一键两列对换操作,提升文本编辑效率的实用技巧

在文本编辑过程中,有时我们需要对文本进行列与列之间的对换操作,以满足特定的排版需求或信息呈现方式。这种操作虽然看似简单,但对于新手来说,可能会因为不熟悉相关技巧而感到困惑。今天,我们将为大家介绍一种简单而高…

研究生学习---找工作

规划 研一~研二上学期完成小论文,实习,秋招 竞赛:kaggle? 面试题一般简单且为原题,笔试题目很难,不会出原题 项目 找工作软件

微软必应bing国内官方代理商,广告账户如何开户?

微软必应Bing作为全球知名的搜索引擎之一,其广告平台为众多企业提供了广阔的市场空间和精准的推广机会。对于中国内地的企业而言,通过必应Bing开展国内广告推广不仅能够触及更广泛的潜在客户群体,还能有效提升品牌影响力。通过微软必应Bing国…

大数据可视化实验(五):Tableau数据可视化

目录 一、实验目的... 1 二、实验环境... 1 三、实验内容... 1 1)打开数据源... 1 2)进入工作簿... 2 3)字段设置... 2 4)数据筛选... 3 5)绘制条形图... 3 四、思考问题... 4 五、总结与心得体会... 4 一、…

面对.halo勒索病毒,如何有效防范与应对?

导言: 随着网络技术的不断发展,网络安全问题也日益凸显。其中,勒索病毒作为一种极具破坏性的网络攻击手段,近年来在全球范围内频发。其中,.halo勒索病毒作为勒索病毒家族中的一员,其危害性和传播性不容忽视…

Intel HDSLB 高性能四层负载均衡器 — 快速入门和应用场景

目录 文章目录 目录前言与背景传统 LB 技术的局限性HDSLB 的特点和优势HDSLB 的性能参数基准性能数据对标竞品 HDSLB 的应用场景HDSLB 的发展前景参考文档 前言与背景 在云计算、SDN、NFV 高速发展并普遍落地的今天,随着上云业务的用户数量越来越多、数据中心的规模…

pve clusterk8s cluster重建

背景 dev环境新买了一块固态,插到pve主板的第二个M.2槽位不能识别,通过其他机器排查后确定是这台pve的槽位问题。 同时这台pve还有一些其他的lvm历史遗留问题,具体表现是每次开机很长,因为要扫描那块机械硬盘做的lvm 所以决定将这…

ubuntu编译pcl时报错

报错如下 cc1plus: warning: -Wabi wont warn about anything [-Wabi] cc1plus: note: -Wabi warns about differences from the most up-to-date ABI, which is also used by default cc1plus: note: use e.g. -Wabi11 to warn about changes from GCC 7 在网上找到了一封邮件…

【C++】string类的使用①(默认成员函数 || 迭代器接口begin,end,rbegin和rend)

🔥个人主页: Forcible Bug Maker 🔥专栏: STL || C 目录 前言🌈关于string类🌈string类的成员函数🔥默认成员函数string类对象的构造(constructor)string类对象的析构string类对象的赋值运算符…

MySQL数据库核心面试题

数据库中的引擎 常用的引擎有InnoDB、MyIsam、Memory三种。 MyIsam:组织形式分为三种: frm文件存储表结构、MyData文件存储表中的数据、MyIndex文件存储表的索引数据。是分开存储的。 Memory:基于内存的,访问速度快&#xff0…

【C++】 C++ 编写 鸡兔同笼程序

文章目录 “鸡兔同笼”问题是一个经典的数学问题,要求根据总头数和总腿数来计算鸡和兔的数量。假设鸡有 2 条腿,兔有 4 条腿。可以通过以下步骤求解这个问题: 1 .设鸡的数量为 x,兔的数量为 y。2.根据题意,我们有以下…

#私密朋友圈被吐槽有bug?官方致歉!网友:尴尬了......

1月7日,话题#微信私密朋友圈被吐槽有bug#,冲上微博热搜第一。 据了解,近日有网友发现,即使自己发布私密朋友圈,好友也可以在朋友圈页面看到自己的头像红点,随即此话题引发热议。 有网友表示,怪…

STL----resize

resize的作用 设置容器元素个数和初始值。 resize和reserve resize即改变容器元素个数,也改变容器容量。 reserve只改变容器容量,不改变容器元素个数。 reserve有什么用 reserve---存储,容量,保留。 1,设置容器容…

分布式系统的一致性与共识算法(二)

Consitency 背景 如买最后一张车票,两个售票处分别通过某种方式确认过这张票的存在。这时,两家售票处几乎同时分别来了一个乘客要买这张票,从各自"观察"看来,自己一方的乘客都是先到的,这种情况下&#xf…

原子学习笔记7——FrameBuffer 应用编程

Frame 是帧的意思,buffer 是缓冲的意思,所以 Framebuffer 就是帧缓冲,这意味着 Framebuffer 就是一块内存,里面保存着一帧图像。 应用程序通过对 LCD 设备节点/dev/fb0(假设 LCD 对应的设备节点是/dev/fb0)…

【时隙ALOHA,CSMA(载波侦听多路访问)carrier sense mltiple access,无线局域网: CSMA/CA】

文章目录 时隙ALOHA时隙ALOHA的效率( Efficiency )纯ALOHA(非时隙)----效率低CSMA(载波侦听多路访问)carrier sense mltiple accessCSMA冲突CSMA/CD(冲突检测)边说边听(提高了信道利用率)以太网就是用的这个无线局域网: CSMA/CA无线局域网中的 MAC&#…

同为科技详解智能PDU所应用的通信协议与接口

现如今,信息服务、AI人工智能的飞速发展与增长,全球正经历信息数据的爆炸。不仅数据量以惊人的速度增长,而且全球社会各行业对数据的依赖的程度也在日益增加。这些趋势使数据中心在全球都享有关键基础架构的地位。假设某个数据中心发生严重的…

【知识拓展】大白话说清楚:IP地址、子网掩码、网关、DNS等

前言 工作中常听别人说的本地网络是什么意思?同一网段又是什么意思?它俩有关系吗? 在工作中内经常会遇到相关的网络问题,涉及网络通信中一些常见的词汇,如IP地址、子网掩码、网关和DNS等。具体一点:经常会…

JavaEE之线程(5)——Java内存模型、内存可见性、volatile关键字

前言 volatile可以理解成轻量级的 synchronized, 它在多CPU开发中保证了共享变量的“可见性”,可见性我们可以理解成是:当一个线程修改一个共享变量时,另一个线程可以读到这个修改的值。由于它不会引起线程的上下文切换和调度&am…

【JavaWeb】Day77.Spring——SpringBoot原理(一)

SpringBoot原理 Spring是目前世界上最流行的Java框架,它可以帮助我们更加快速、更加容易的来构建Java项目。而在Spring家族当中提供了很多优秀的框架,而所有的框架都是基于一个基础框架的SpringFramework(也就是Spring框架)。而如果我们直接基于Spring框…