我的魔法被公司防火墙限制了,所以我只能让我的代理流量从我自己的服务器过一遍,但是服务器上面的客户端只能允许本机使用,不能开放公网访问,所以就想到了端口转发

但是网络上面找到的端口转发工具需要各种配置,,,太麻烦了。所以在下班之前就开发了一个端口转发的工具 (Python牛逼! (破音)

最近看了不少的优秀代码,下面代码也用到了一些开发方法。贴出代码,希望能帮到有需要的人

# -*- coding:utf-8 -*
import socket
import threading
import sys,getopt ## 这个代码是用来做端口转发的 emmm 你问有什么用?没用,删了他吧 (摊手 # 错误
def l_w(s):
print("[!] {}".format(s)) # 信息
def l_i(s):
print("[+] {}".format(s)) # 毁灭性错误
def l_a(s):
print("[-] {}".format(s))
exit() def help():
print("""
-h 提供帮助,就是你看到的这个
-s 指定监听的本地ip,默认为 127.0.0.1
-l 指定监听的端口号,必须指定
-d 指定转发的目的主机,默认为 127.0.0.1
-p 指定转发的目的端口,必须指定 本程序具有超级牛力! moo~~ moo~~~
""")
exit() s_host = "127.0.0.1"
s_port = 0
d_host = "127.0.0.1"
d_port = 0 # 将来自s套接字的数据转发到d套接字(函数名 forward)
def fw(s,d):
try:
while True:
buf = s.recv(4096)
l_i("{} ====> {} {} 字节".format(s.getpeername(),d.getpeername(),len(buf)))
if(len(buf) == 0):
l_w("{} 断开连接".format(s.getpeername()))
return
d.send(buf)
except:
return # 处理请求,每一个连接对应一个 (函数名 request thread)
def rt(request_socket):
des_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
des_socket.connect((d_host,int(d_port)))
except Exception as e:
l_a("连接目标 {}:{} 失败!err: {}".format(d_host,d_port,str(e)))
threading.Thread(target=fw,args=(request_socket,des_socket)).start()
fw(des_socket,request_socket) l_i("这个程序由 Startu 开发 o_o | ^_^ ~~~")
# 获取参数
try:
opts,args = getopt.getopt(sys.argv[1:],"hs:l:d:p:")
except getopt.GetoptError:
l_w("参数不正确")
help()
for opt,arg in opts:
if opt == '-h':
help()
elif opt == '-s':
s_host = arg
elif opt == '-l':
s_port = arg
elif opt == '-d':
d_host = arg
elif opt == '-p':
d_port = arg
if s_host == "127.0.0.1":
l_w("将会监听: 127.0.0.1") # 因为可能你不想绑定 127.0.0.1 所以作出提示 (也许是0.0.0.0呢)
if s_port == 0 or d_port == 0:
l_a("没有指定端口号或指定为0 通过 -h 参数看帮助") l_i("监听 {}:{}".format(s_host,s_port))
l_i("将会连接 {}:{}".format(d_host,d_port)) server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
server_socket.bind((s_host,int(s_port)))
except Exception as e:
l_a("绑定 {}:{} 端口失败 {}".format(s_host,s_port,str(e)))
server_socket.listen(50) # 应该同时连接不会超过 50 个吧...
l_i("准备就绪")
while True:
request_socket,addr = server_socket.accept()
l_i("{} 已连接".format(request_socket.getpeername()))
threading.Thread(target=rt,args=(request_socket,)).start()

核心代码实际上只有十几行而已。。。

[Python] 端口转发代码分享的更多相关文章

  1. python端口扫描器

    吃了个火鸡面后感觉到了怀疑人生!!!!!!!!!妈耶,在也不吃了.思路都给辣没了!!! python端口扫描器代码如下: #-*-coding:utf-8 from socket import * i ...

  2. ssh远程端口转发&&windows系统提权之信息收集&&网安工具分享(部分)

    一.ssh远程端口转发 背景:当我们在渗透过程中,获取到内网的一台仅有内网IP的服务器后,我们可以通过ssh隧道,将内网某个主机的端口进行远程转发 1.网络拓扑图 假设获取的服务器为web服务器,we ...

  3. 基于Python的跨平台端口转发工具

    背景 使用lcx也好,nc也好,总是会被安全防护软件查杀,所以想着自己写一个.顺面学习一下,端口转发的原理. 端口转发的逻辑 端口转发的逻辑很简单开启两个scoket,一个绑定IP端口进行listen ...

  4. vIDC v2.0 强大的端口转发神器使用总结-开放内网tfs代码服务

    vIDC2.0 端口映射工具,最近在公司闲来无事,想自己整个tfs来管理自己的研究代码. 本来是想用微软Visual Studio提供的免费tfs,但是无奈速度太慢.他们的服务器在美国,中国也没有代理 ...

  5. 抓取oschina上面的代码分享python块区下的 标题和对应URL

    # -*- coding=utf-8 -*- import requests,re from lxml import etree import sys reload(sys) sys.setdefau ...

  6. 教你用Python Jupyter Notebook 制作代码分享 PPT

    PPT 是个强大的工具,但是笔者的 PPT 制作技术不咋地,所以之前的分享习惯使用 Jupyter Notebook + RISE,这样使用简单的 markdown 格式加上代码就足够做一次代码分享了 ...

  7. Python的Asyncore异步Socket模块及实现端口转发的例子

    Python的Asyncore异步Socket模块及实现端口转发的例子 Asyncore模块提供了以异步的方式写入套接字服务客户端和服务器的基础结构. 只有两种方式使一个程序在单处理器上实现" ...

  8. python 常忘代码查询 和autohotkey补括号脚本和一些笔记和面试常见问题

    笔试一些注意点: --,23点43 今天做的京东笔试题目: 编程题目一定要先写变量取None的情况.今天就是因为没有写这个边界条件所以程序一直不对.以后要注意!!!!!!!!!!!!!!!!!!!!! ...

  9. 把www.domain.com均衡到本机不同的端口 反向代理 隐藏端口 Nginx做非80端口转发 搭建nginx反向代理用做内网域名转发 location 规则

    负载均衡-Nginx中文文档 http://www.nginx.cn/doc/example/loadbanlance.html 负载均衡 一个简单的负载均衡的示例,把www.domain.com均衡 ...

  10. 「SSH 黑魔法」: 代理、端口转发和 shell 共享

    在好朋友的推荐下,我看了这个视频: The Black Magic Of SSH 这个视频里面,介绍了  ssh 的一些高级应用:结合工作的经历,两类问题会对我们平时的工作帮助很大: 1. 两个人怎么 ...

随机推荐

  1. 【K哥爬虫普法】大数据风控第一案:从魔蝎科技案件判决,看爬虫技术刑事边界

    我国目前并未出台专门针对网络爬虫技术的法律规范,但在司法实践中,相关判决已屡见不鲜,K 哥特设了"K哥爬虫普法"专栏,本栏目通过对真实案例的分析,旨在提高广大爬虫工程师的法律意识, ...

  2. FMEA:总监和架构师都在用的高可用架构分析方法

    FMEA:总监和架构师都在用的高可用架构分析方法 记得之前准备春晚项目的时候,团队成员在一起过架构,老板最常问的问题是"这个组件挂了怎么办?有什么影响?",我当时还在心里默默嘀咕: ...

  3. 【构建docker镜像之插件篇】使用插件实战演示:docker-maven-plugin和jib-maven-plugin

    1.说明: docker容器化部署是非常流行的,Java应用如果要运行在docker环境,就要制作包含该应用的docker镜像,可以手动使用dockerfile和docker-compose制作镜像, ...

  4. tensorflow语法【shape、tf.trainable_variables()、Optimizer.minimize()】

    相关文章: [一]tensorflow安装.常用python镜像源.tensorflow 深度学习强化学习教学 [二]tensorflow调试报错.tensorflow 深度学习强化学习教学 [三]t ...

  5. 《Mastering ABP Framework》图书目录

    以下是<Mastering ABP Framework>的中文目录,目前个人正在进行翻译中,如果您对本书感兴趣,也想使用或者学习框架设计,可以访问该地址进行登记,本文只是一个目的的展示和购 ...

  6. 图(树)的深度优先遍历dfs

    图的深度优先遍历 深度优先,即对于一个图或者树来说,在遍历时优先考虑图或者树的单一路径的深度.示意图如下 即深度优先搜索的核心就是对一个路径一直向下搜索,当搜索到头时就回溯到前一状态再寻找别的路 深搜 ...

  7. 案例:OGG目标端进程ABENDED处理

    源端环境:RHEL 6.5 + Oracle 11.2.0.4 RAC + OGG 19.1.0.0.4 目标端环境:RHEL 7.6 + Oracle 19.3 + OGG 19.1.0.0.4 故 ...

  8. TfrxReport.Clear。尽量慎用。

    for MyXuHaoKey in MyXuHaoJianRongSanJieKouDataDicApi.KeySortList do begin //标记下打印编号,吸入淘打的客户 MyTradeA ...

  9. 使用VNC在Windows上远程访问Ubuntu服务器

    Step 0:事前准备 一台安装了ghome桌面的Ubuntu服务器(用作server) 一台Windows机器(用作client) Step 1:Linux服务器 在Ubuntu上安装一个VNC服务 ...

  10. CF1010C Border 题解

    题目传送门 前置知识 最大公约数 | 裴蜀定理 简化题意 给定一个长度为 \(n\) 的序列 \(a\),求 \((\sum\limits_{i=1}^{n}d_ia_i) \bmod k\) 一共会 ...