精华内容
下载资源
问答
  • 2020-07-14 09:17:42

    端口转发用来中转小鸡不错,iptables不仅支持单端口,连端口段也可以转发,同时TCP/UDP均可

    特别注明:本地服务器 IP 未必是公网 IP ,像阿里云就是内网 IP ,请用 ipconfig 确认下走流量的网卡 IP 是外网还是内网。

    第一步:开启系统的转发功能

    vi /etc/sysctl.conf



    net.ipv4.ip_forward=0

    修改成

    net.ipv4.ip_forward=1

    编辑后使用命令让配置马上生效

    sysctl -p

    第二步: iptables 的命令

    iptables -t nat -A PREROUTING -p tcp --dport [端口号] -j DNAT --to-destination [目标IP]
    iptables -t nat -A PREROUTING -p udp --dport [端口号] -j DNAT --to-destination [目标IP]
    iptables -t nat -A POSTROUTING -p tcp -d [目标IP] --dport [端口号] -j SNAT --to-source [本地服务器IP]
    iptables -t nat -A POSTROUTING -p udp -d [目标IP] --dport [端口号] -j SNAT --to-source [本地服务器IP]

    第三步:重启 iptables 使配置生效(仅适合Centos6,7默认没有安装iptables防火墙,Debian/Ubuntu 不需要输入这个命令)

    service iptables save
    service iptables restart

    扩展需求
    多端口转发修改方案: ( 将本地服务器的 50000~65535 转发至目标 IP 为 1.1.1.1 的 50000~65535 端口 )

    iptables -t nat  -A PREROUTING -p tcp -m tcp --dport 50000:65535 -j DNAT --to-destination 1.1.1.1
    iptables -t nat  -A PREROUTING -p udp -m udp --dport 50000:65535 -j DNAT --to-destination 1.1.1.1
    iptables -t nat  -A POSTROUTING -d 1.1.1.1 -p tcp -m tcp --dport 50000:65535 -j SNAT --to-source [本地服务器IP]
    iptables -t nat  -A POSTROUTING -d 1.1.1.1 -p udp -m udp --dport 50000:65535 -j SNAT --to-source [本地服务器IP]

    非同端口号修改方案:(使用本地服务器的 60000 端口来转发目标 IP 为 1.1.1.1 的 50000 端口)

    iptables -t nat   -A PREROUTING -p tcp -m tcp --dport 60000 -j DNAT --to-destination 1.1.1.1:50000
    iptables -t nat   -A PREROUTING -p udp -m udp --dport 60000 -j DNAT --to-destination 1.1.1.1:50000
    iptables -t nat   -A POSTROUTING -d 1.1.1.1 -p tcp -m tcp --dport 50000 -j SNAT --to-source [本地服务器IP]
    iptables -t nat   -A POSTROUTING -d 1.1.1.1 -p udp -m udp --dport 50000 -j SNAT --to-source [本地服务器IP]

    查看 NAT 规则

    iptables -t nat -vnL

    删除 NAT 规则
    通过上面的查看规则命令,查看规则后,确定你要删除的规则的顺序,下面的命令是删除第一个规则。

    iptables -t nat -D POSTROUTING 1
    iptables -t nat -D PREROUTING 1

    保存 iptables 规则并开机自动配置(Debian / Ubuntu)

    iptables-save > /etc/iptables-rules-ipv4

    最后,我们需要编辑/etc/network/interfaces文件

    vi /etc/network/interfaces

    在最后加入下面一行

    pre-up iptables-restore < /etc/iptables-rules-ipv4

     

     

    Debian 使用 iptables-persistent 持久化 iptables 规则

    RedHat系列下有比较好用的iptables管理工具,可以像控制服务进程一样来对防火墙进行管理及控制,Debian系发行版默认不开启iptables,当然也没有与之相关的能直接管理的工具了。

    正常情况下,我们写入的iptables规则将会在系统重启时消失。即使我们使用iptables-save命令将iptables规则存储到文件,在系统重启后也需要执行iptables-restore操作来恢复原有规则。

    当然,你也可以通过在network中的if.post.up.d中配置启动规则来达到开机自动启动iptables的目的。

    这里我们有一个更好的iptables持久化方案,让防火墙规则重启后依旧有效。即使用iptables-persistent工具。

    首先,安装iptables-persistent

    $ sudo apt-get install iptables-persistent

    iptables-persistent指令使用语法

    • Ubuntu 14.04

    $ /etc/init.d/iptables-persistent

    Usage: /etc/init.d/netfilter-persistent {start|restart|reload|force-reload|save|flush}

    • Ubuntu 16.04

    $ /etc/init.d/netfilter-persistent

    Usage: /etc/init.d/netfilter-persistent {start|restart|reload|force-reload|save|flush}

    安装完后即可使用以下命令保存或载入规则:

    • Ubuntu 14.04

    $ sudo invoke-rc.d iptables-persistent save

    $ sudo invoke-rc.d iptables-persistent reload

    或者

    $ sudo /etc/init.d/iptables-persistent save

    $ sudo /etc/init.d/iptables-persistent reload

    • Ubuntu 16.04

    $ sudo netfilter-persistent save

    $ sudo netfilter-persistent reload

    通过iptables-persistent生成的规则默认将被存储在以下文件中

    /etc/iptables/rules.v4

    /etc/iptables/rules.v6

    一键清除iptables规则

    $ cat clear_iptables_rule.sh

    #!/bin/bash

    iptables -F

    iptables -X

    iptables -Z

    iptables -P INPUT ACCEPT

    iptables -P OUTPUT ACCEPT

    iptables -P FORWARD ACCEPT

    更多相关内容
  • 路由器上端口转发Although modern routers handle most functions automatically, some applications will require you to manuallyforward a port to that application or device. Fortunately, it’s really ...
    路由器上端口转发

    路由器上端口转发

    Although modern routers handle most functions automatically, some applications will require you to manually forward a port to that application or device. Fortunately, it’s really simple to do if you know where to look.

    尽管现代路由器会自动处理大多数功能,但是某些应用程序将要求您手动将端口转发到该应用程序或设备。 幸运的是,如果您知道要看的地方,这真的很简单。

    什么是端口转发? (What Is Port Forwarding?)

    There are plenty of projects we’ve covered that use your computer as a server for other devices. When you’re inside of your network, most things will work fine. But some apps, if you want to access them when you’re outside your network, make things significantly hairier. Let’s start by taking a look at why that is.

    我们涵盖了许多项目,这些项目将您的计算机用作其他设备的服务器。 当您处于网络内部时,大多数事情都会正常进行。 但是某些应用程序,如果您想在网络之外访问它们,则会使事情变得很麻烦。 让我们开始看看为什么会这样。

    路由器如何处理请求和使用端口 (How Your Router Handles Requests and Uses Ports)

    Here’s a map of a simple home network. The cloud icon represents the greater internet and your public, or forward-facing, Internet Protocol (IP) address. This IP address represents your entire household from the oustide world–like a street address, in a way.

    这是一个简单的家庭网络的地图。 云图标代表更大的Internet和您的公共或前向Internet协议(IP)地址。 该IP地址在某种程度上代表了来自被驱逐世界的整个家庭,就像街道地址一样。

    The red address 192.1.168.1 is the router address within your network. The additional addresses all belong to the computers seen at the bottom of the image. If your public IP address is like a street address, think of the internal IP addresses like apartment numbers for that street address.

    红色地址192.1.168.1是您网络内的路由器地址。 所有其他地址都属于在图像底部看到的计算机。 如果您的公共IP地址像街道地址一样,请考虑内部IP地址,例如该街道地址的公寓号。

    map intranet fin-01

    The diagram raises an interesting question which you may not have thought about before. How does all the information from the internet get to the right device inside the network? If you visit howtogeek.com on your laptop how does it end up on your laptop and not your son’s desktop if the public-facing IP address is the same for all devices?

    该图提出了一个有趣的问题,您可能以前没有想到过。 来自Internet的所有信息如何到达网络内部的正确设备? 如果您在笔记本电脑上访问howtogeek.com,并且所有设备的面向公众的IP地址都相同,它将如何在笔记本电脑而不是儿子的桌面上显示?

    This is thanks to a wonderful bit of routing magic known as a Network Address Translation (NAT). This function occurs at the router level where the NAT acts like a traffic cop, directing the flow of network traffic through the router so that a single public IP address can be shared among all the devices behind the router. Because of the NAT, everyone in your household can request web sites and other internet content simultaneously and it will all be delivered to the right device.

    这要归功于出色的路由魔术功能,即网络地址转换(NAT)。 此功能发生在路由器级别,其中NAT充当流量警察,引导网络流量通过路由器,以便可以在路由器后面的所有设备之间共享一个公用IP地址。 由于使用了NAT,家庭中的每个人都可以同时请求网站和其他Internet内容,并且所有内容都将传递到正确的设备上。

    So where do ports come into this process? Ports are an old but useful holdover from the early days of network computing. Back in the day, when computers could only run one application at a time, all you had to do was point one computer at another computer on the network to connect them as they would be running the same application. Once computers became sophisticated to run multiple applications, early computer scientists had to wrestle with the issue of ensuring applications connected to the right applications. Thus, ports were born.

    那么端口在哪里进入这个过程呢? 从网络计算的早期开始,端口就是一个古老而有用的保留方式。 过去,当计算机一次只能运行一个应用程序时,您要做的就是将一台计算机指向网络上的另一台计算机以连接它们,因为它们将运行同一应用程序。 一旦计算机变得复杂到可以运行多个应用程序,早期的计算机科学家就不得不为确保应用程序连接到正确的应用程序而苦恼。 因此,港口诞生了。

    Some ports have specific applications which are standards throughout the computing industry. When you fetch a web page, for example, it uses port 80. The receiving computer’s software knows that port 80 is used for serving http documents, so it listens there and responds accordingly. If you send an http request over a different port—say, 143—the web server won’t recognize it because it’s not listening there (although something else might be, like an IMAP email server which traditionally uses that port).

    一些端口具有特定的应用程序,这些应用程序是整个计算机行业的标准。 例如,当您获取一个网页时,它使用端口80。接收方计算机的软件知道该端口80用于提供http文档,因此它在此处进行监听并做出相应的响应。 如果您通过其他端口(例如143)发送http请求,则Web服务器将无法识别该请求,因为它不在那儿监听(尽管可能还有其他情况,例如传统上使用该端口的IMAP电子邮件服务器)。

    Other ports don’t have pre-assigned uses, and you can use them for whatever you want. To avoid interfering with other standard-abiding applications, it’s best to use larger numbers for these alternate configurations. Plex Media Server uses port 32400, for example, and Minecraft servers use 25565—both numbers that fall into this “fair game” territory.

    其他端口没有预先分配的用途,您可以将它们用于任何需要的用途。 为了避免干扰其他遵守标准的应用程序,最好在这些替代配置中使用更大的数字。 例如,Plex Media Server使用端口32400,而Minecraft服务器使用25565,这两个数字都属于“公平游戏”领域。

    Each port can be used via either TCP or UDP. TCP, or Transmission Control Protocol, is what’s used most commonly. UDP, or User Datagram Protocol, is less widely used in home applications with one major exception: BitTorrent. Depending on what is listening, it’ll be expecting requests to be made in either one or the other of these protocols.

    每个端口都可以通过TCP或UDP使用。 TCP,或传输控制协议,是最常用的。 UDP(或用户数据报协议)在家庭应用程序中使用较少,但有一个主要例外:BitTorrent。 根据正在侦听的内容,可以期望使用这些协议中的一种或另一种发出请求。

    Why You Need to Forward Ports

    为什么需要转发端口

    So why exactly would you need to forward ports? While some applications take advantage of NAT to set their own ports and handle all the configuration for you, there are still plenty of applications that do not, and you’ll need to give your router a helping hand when it comes to connecting services and applications.

    那么,到底为什么需要转发端口呢? 尽管某些应用程序利用NAT来设置自己的端口并为您处理所有配置,但仍有许多应用程序不需要这些,并且在连接服务和应用程序时需要为路由器提供帮助。

    In the diagram below we’re starting with a simple premise. You’re on your laptop somewhere in the world (with an IP address of 225.213.7.32), and you want to connect to your home network to access some files. If you simply plug your home IP address (127.34.73.214) into whatever tool you’re using (an FTP client or remote desktop application, for example), and that tool doesn’t take advantage of those advanced router features we just mentioned, you’re out of luck. It won’t know where to send your request, and nothing will happen.

    在下图中,我们以一个简单的前提开始。 您正在世界上某个地方的笔记本电脑上(IP地址为225.213.7.32),并且想要连接到家庭网络以访问某些文件。 如果您只是将家庭IP地址(127.34.73.214)插入正在使用的任何工具(例如FTP客户端或远程桌面应用程序)中,而该工具没有利用我们刚才提到的高级路由器功能,你不走运。 它不知道将请求发送到哪里,什么也不会发生。

    map internet qs-01

    This, by the way, is a great security feature. If somebody connects to your home network and they aren’t connected to a valid port, you want the connection to get rejected. That’s the firewall element of your router doing its job: rejecting unwelcome requests. If the person knocking on your virtual door, however, is you, then the rejection isn’t so welcome and we need to do a little tweaking.

    顺便说一下,这是一个很好的安全功能。 如果有人连接到您的家庭网络,而他们没有连接到有效端口,则您希望连接被拒绝。 这就是路由器执行其工作的防火墙元素:拒绝不受欢迎的请求。 但是,如果敲您虚拟门的人是您,那么拒绝就不那么受欢迎了,我们需要做一些调整。

    To solve that problem, you want to tell your router “hey: when I access you with this program, you’ll need to send it to this device at this port”. With those instructions in place, your router will make sure you can access the right computer and application on your home network.

    为了解决该问题,您想告诉路由器“嘿:当我使用该程序访问您时,您需要将其发送到此端口的该设备上”。 有了这些说明,路由器将确保您可以访问家庭网络上的正确计算机和应用程序。

    map internet check-01

    So in this example, when you’re out and about and using your laptop, you use different ports to make your requests. When you access your home network’s IP address using port 22, your router at home knows that this should go to 192.168.1.100 inside the network. Then, the SSH daemon on your Linux installation will respond. At the same time, you can make a request over port 80, which your router will send to the web server at 192.168.1.150. Or, you can try to remotely control your sister’s laptop with VNC, and your router will connect you to your laptop at 192.168.1.200. In this way, you can easily connect to all the devices you’ve set up a port forward rule for.

    因此,在此示例中,当您外出使用笔记本电脑时,将使用不同的端口来发出请求。 当您使用端口22访问家庭网络的IP地址时,在家中的路由器会知道它应该进入网络内部的192.168.1.100。 然后,Linux安装上的SSH守护程序将响应。 同时,您可以通过端口80发出请求,路由器会将其发送到192.168.1.150的Web服务器。 或者,您可以尝试使用VNC远程控制姐姐的笔记本电脑,路由器会将您连接到192.168.1.200的笔记本电脑。 这样,您可以轻松地连接到为其设置了端口转发规则的所有设备。

    The usefulness of port forwarding doesn’t end there though! You can even use port forwarding to change existing services’ port numbers for clarity and convenience. For example, let’s say you have two web servers running on your home network and you want one to be readily and obviously accessible (e.g. it’s a weather server you want people to be able to easily find) and the other web server is for a personal project.

    端口转发的有用之处还不止于此! 为了清楚和方便起见,您甚至可以使用端口转发来更改现有服务的端口号。 例如,假设您有两台运行在家庭网络上的Web服务器,并且您希望其中一台可以方便且明显地访问(例如,您希望人们能够轻松找到的天气服务器),而另一台Web服务器是针对个人的项目。

    When you access your home network from the public-facing port 80, you can tell your router to send it to port 80 on the weather server at 192.168.1.150, where it will be listening at port 80. But, you can tell your router that when you access it via port 10,000, that it should go to port 80 on your personal server, 192.168.1.250. This way, the second computer doesn’t have to be reconfigured to use a different port, but you can still manage traffic effectively—and at the same time by leaving the first web server linked to port 80 you make it easier for people accessing your aforementioned weather server project.

    当您从面向公众的端口80访问家庭网络时,可以告诉路由器将其发送到192.168.1.150的气象服务器上的端口80,它将在端口80进行侦听。但是,您可以告诉路由器当您通过端口10,000访问它时,它应该转到您的个人服务器192.168.1.250上的端口80。 这样,不必将第二台计算机重新配置为使用其他端口,但是您仍然可以有效地管理流量-同时通过将第一台Web服务器保持链接到端口80,可以使人们更轻松地访问您的端口。上述天气服务器项目。

    Now that we know what port forwarding is and why we might want to use it, lets’ take a look at some small considerations regarding port forwarding before diving into actually configuring it.

    现在我们知道什么是端口转发以及为什么要使用它,让我们在深入研究端口转发之前先了解一些有关端口转发的小注意事项。

    配置路由器之前的注意事项 (Considerations Before Configuring Your Router)

    There are a few things to keep in mind before sitting down to configure your router and running through them in advance is guaranteed to cut down on frustration.

    在坐下来配置路由器并事先运行它们之前,请记住一些注意事项,以确保减少挫败感。

    设置设备的静态IP地址 (Set Static IP Address for Your Devices)

    First and foremost, all your port forwarding rules will fall apart if you’re assigning them to devices with dynamic IP addresses assigned by your router’s DHCP service. We dig into the details of what DHCP is in this article on DHCP vs. static IP address assignments, but we’ll give you the quick summary here.

    首先,如果您将所有端口转发规则分配给具有由路由器的DHCP服务分配的动态IP地址的设备,则所有规则都会崩溃。 我们将在有关DHCP与静态IP地址分配的文章中深入探讨DHCP的详细信息,但在此处为您提供简要概述。

    Your router has a pool of addresses that it reserves just for handing out to devices as they join and leave the network. Think of it like getting a number at a diner when you arrive—your laptop joins, boom, it gets IP address 192.168.1.98. Your iPhone joins, boom, it gets address 192.168.1.99. If you take those devices offline for a period of time or the router is rebooted, then the whole IP address lottery happens all over again.

    路由器具有一个地址池,该地址池仅用于在设备加入和离开网络时移交给它们。 可以将其想像成在到达餐厅时获得一个数字-您的笔记本电脑连接起来,繁荣起来,它的IP地址为192.168.1.98。 您的iPhone加入后,繁荣起来,它的地址为192.168.1.99。 如果您使这些设备脱机一段时间或重启路由器,则整个IP地址抽奖将再次发生。

    Under normal circumstances this is more than fine. Your iPhone doesn’t care which internal IP address it has. But if you’ve created a port forwarding rule that says your game server is at a certain IP address and then the router gives it a new one, that rule won’t work, and nobody will be able to connect to your game server. In order to avoid that, you need to assign a static IP address to each network device you’re assigning a port forwarding rule to. The best way to do that is through your router—check out this guide for more info.

    在正常情况下,这样做是可以的。 您的iPhone不在乎它拥有哪个内部IP地址。 但是,如果您创建了一个端口转发规则,说您的游戏服务器位于某个IP地址,然后路由器为它提供了一个新的规则,则该规则将不起作用,并且任何人都无法连接到您的游戏服务器。 为了避免这种情况,您需要为要为其分配端口转发规则的每个网络设备分配一个静态IP地址。 最好的方法是通过路由器- 查阅本指南以获取更多信息。

    知道您的IP地址(并设置动态DNS地址) (Know Your IP Address (and Set a Dynamic DNS Address))

    In addition to using static IP assignments for the relevant devices inside your network, you also want to be aware of your external IP address—you can find it by visiting whatismyip.com while on your home network. Although its possible you might have the same public IP address for months or even over a year, your public IP address can change (unless your internet service provider has explicitly given you a static public-facing IP address). In other words, you can’t rely on typing in your numeric IP address into whatever remote tool you’re using (and you can’t rely on giving that IP address to a friend).

    除了为网络内的相关设备使用静态IP分配之外,您还希望了解您的外部IP地址-您可以在家庭网络上访问whatismyip.com来找到它。 尽管您可能在几个月甚至一年内都拥有相同的公共IP地址,但是您的公共IP地址可能会发生变化(除非您的Internet服务提供商明确为您提供了静态的面向公众的IP地址)。 换句话说,您不能依赖于将数字IP地址输入到正在使用的任何远程工具中(也不能依赖于将该IP地址提供给朋友)。

    Now, while you could go through the hassle of manually checking that IP address each time you leave the house and intend to work away from home (or every time your friend is going to connect to your Minecraft server or the like), that’s a big headache. Instead, we highly recommend you set up a Dynamic DNS service which will allow you to link your (changing) home IP address to a memorable address like mysuperawesomeshomeserver.dynu.net. For more information how to set up a dynamic DNS service with your home network, check out our full tutorial here.

    现在,尽管您每次离开家并打算出门在外工作时(或每次您的朋友要连接到Minecraft服务器等)时都需要手动检查该IP地址的麻烦,但这确实很麻烦头痛。 相反,我们强烈建议您设置一个动态DNS服务,该服务将允许您将(更改中的)家庭IP地址链接到一个令人难忘的地址,例如mysuperawesomeshomeserver.dynu.net。 有关如何通过家庭网络设置动态DNS服务的更多信息,请在此处查看我们的完整教程

    注意本地防火墙 (Pay Attention to Local Firewalls)

    Once you set up the port forwarding on the router level, there is a possibility that you may need to tweak firewall rules on your computer too. For example, we’ve gotten a lot of emails over the years from frustrated parents setting up port forwarding so their kids can play Minecraft with their friends. In almost every case, the problem is that despite setting up the port forwarding rules on the router correctly, somebody ignored the Windows firewall request asking if it it was OK if the Java platform (that runs Minecraft) could access the greater internet.

    一旦在路由器级别设置了端口转发,就有可能还需要调整计算机上的防火墙规则。 例如,多年来,我们沮丧的父母收到了很多电子邮件,他们设置了端口转发,以便他们的孩子可以和朋友一起玩Minecraft。 在几乎每种情况下,问题都在于,尽管在路由器上正确设置了端口转发规则,但还是有人忽略了Windows防火墙请求,询问是否可以(运行Minecraft的Java平台)访问更大的互联网。

    Be aware that on computers running local firewall and/or anti-virus software that includes firewall protection, you’ll likely need to confirm the connection you’ve set up is okay.

    请注意,在运行本地防火墙和/或包括防火墙保护功能的防病毒软件的计算机上,您可能需要确认已建立的连接正常。

    第一步:在路由器上找到端口转发规则 (Step One: Locate the Port Forwarding Rules on Your Router)

    Exhausted by all the networking lessons? Don’t worry, it’s finally time to set it up–and now that you know the basics, it’s pretty simple.

    所有网络课程都用尽了吗? 不用担心,现在是时候进行设置了-现在您已经了解了基础知识,这非常简单。

    As much as we’d love to provide exact instructions for your exact router, the reality is that every router manufacturer has their own software, and how that software looks can even vary between router models. Rather than attempt to capture every variation, we’ll highlight a few to give you an idea what the menu looks like and encourage you to look up the manual or online help files for your particular router to find the specifics.

    尽管我们希望为您的确切路由器提供确切的说明,但事实是每个路由器制造商都有自己的软件,并且该软件的外观甚至在路由器型号之间也会有所不同。 除了尝试捕获所有变化之外,我们还将重点介绍一些变化,以使您了解菜单的外观,并鼓励您查找特定路由器的手册或在线帮助文​​件以查找详细信息。

    In general, you’re going to be looking for something called—you guessed it—“Port Forwarding”. You may have to look through the different categories to find it, but if your router is any good, it should be there.

    通常,您会寻找一种叫做“端口转发”的东西(您猜对了)。 您可能需要仔细研究不同的类别才能找到它,但是如果您的路由器是好的,它应该在那里。

    For comparison, here’s what the port forwarding menu looks like on D-Link DIR-890L router:

    为了进行比较,以下是D-Link DIR-890L路由器上的端口转发菜单:

    And here’s what the port forwarding menu looks like on the same router running the popular third-party DD-WRT firmware:

    这是运行流行的第三方DD-WRT固件的同一路由器上的端口转发菜单的外观:

    As you can see, the complexity between the two views varies greatly, even on the same hardware. In addition, the location is completely different within the menus. As such it’s most useful if you look up the exact instructions for your device using the manual or a search query.

    如您所见,即使在相同的硬件上,两个视图之间的复杂度也相差很大。 此外,菜单中的位置完全不同。 因此,如果您使用手册或搜索查询查找设备的确切说明,这将非常有用。

    Once you’ve located the menu it’s time to set up the actual rule.

    找到菜单后,就该设置实际规则了。

    第二步:创建端口转发规则 (Step Two: Create a Port Forwarding Rule)

    After learning all about port forwarding, setting up a dynamic DNS for your home IP address, and all the other work that went into this, the important step—creating the actual rule–is pretty much a walk in the park. In the port forwarding menu on our router, we’re going to create two new port forwarding rules: one for the Subsonic music server and one for a new Minecraft server we just set up.

    在学习了有关端口转发的所有知识之后,为您的家庭IP地址设置了动态DNS,以及与此相关的所有其他工作之后,重要的一步-创建实际规则-几乎是在公园散步。 在路由器的端口转发菜单中,我们将创建两个新的端口转发规则:一个用于Subsonic音乐服务器,另一个用于我们刚刚设置的新Minecraft服务器。

    Despite the differences in location on different router software, the general input is the same. Almost universally, you’ll name the port forwarding rule. It’s best to simply name it what the server or service is and then append it if need be for clarity (e.g. “Webserver” or “Webserver-Weather” if there is more than one). Remember the TCP/UDP protocol we talked about at the beginning? You’ll also need to specify TCP, UDP, or Both. Some people are very militant about finding out exactly what protocol every application and service uses and matching things up perfectly for security purposes. We’ll be the first to admit that we’re lazy in this regard and we almost always just pick “Both” to save time.

    尽管在不同路由器软件上的位置不同,但一般输入是相同的。 几乎普遍地说,您将命名端口转发规则。 最好简单地将其命名为服务器或服务的名称,然后在需要时将其附加清楚(例如,如果有多个,则为“ Webserver”或“ Webserver-Weather”)。 还记得我们在开始时谈论的TCP / UDP协议吗? 您还需要指定TCP,UDP或两者。 有些人非常清楚找出每个应用程序和服务使用什么协议,并为了安全起见将它们完美地匹配起来。 我们将是第一个承认我们在这方面很懒的人,我们几乎总是选择“两者”以节省时间。

    Some router firmware, including the more advanced DD-WRT we’re using in the screenshot above, will allow you to specify a “Source” value which is list of IP addresses you’re restricting the port forward to for security purposes. You can use this feature if you wish, but be forewarned it introduces a whole new host of headaches as it presumes that remote users (including you when you’re away from home and friends who are connecting in) have static IP addresses.

    一些路由器固件,包括我们在上面的屏幕截图中使用的更高级的DD-WRT,将允许您指定“源”值,该值是出于安全目的而将端口限制转发到的IP地址列表。 您可以根据需要使用此功能,但请注意,它会带来很多麻烦,因为它假定远程用户(包括您外出时和周围的朋友)拥有静态IP地址。

    Next you’ll need to put in the external port. This is the port that will be open on the router and facing the internet. You can use any number you want here between 1 and 65353, but practically most of the lower numbers are taken up by standard services (like email and web servers) and many of the higher numbers are assigned to fairly common applications. With that in mind, we’d recommend picking a number above 5,000 and, to be extra safe, using Ctrl+F to search this long list of TCP/UDP port numbers to make sure you’re not selecting a port that conflicts with an existing service you’re already  using.

    接下来,您需要放入外部端口。 这是将在路由器上打开并面向Internet的端口。 您可以在1到65353之间使用任何所需的数字,但是实际上,大多数较低的数字是由标准服务(例如电子邮件和Web服务器)占用的,而许多较高的数字则分配给了相当普通的应用程序。 考虑到这一点,我们建议您选择一个大于5,000的数字,为了更加安全,请使用Ctrl + F搜索此较长的TCP / UDP端口号列表,以确保您选择的端口不与您已经在使用的现有服务。

    Finally, put in the internal IP address of the device, the port you on that device, and (if applicable) toggle the rule on. Don’t forget to save the settings.

    最后,输入设备的内部IP地址,该设备上的端口,然后打开(如果适用)规则。 不要忘记保存设置。

    第三步:测试您的端口转发规则 (Step Three: Test Your Port Forwarding Rule)

    The most obvious way to test if your port forward worked is to connect using the routine intended for the port (e.g. have your friend connect their Minecraft client to your home server), but that’s not always an immediately available solution if you’re not away from home.

    测试端口转发是否正常的最明显方法是使用用于该端口的例程进行连接(例如,让您的朋友将其Minecraft客户端连接到您的家庭服务器),但是如果您不在的话,这并不总是立即可用的解决方案从家里。

    Thankfully, there’s a handy little port checker available online at YouGetSignal.com. We can test to see if our Minecraft server port forward took simply by having the port tester try to connect to it. Plug in your IP address and the port number and click “Check”.

    值得庆幸的是, YouGetSignal.com上有一个方便的在线端口检查器。 我们可以通过让端口测试器尝试连接它来测试我们的Minecraft服务器端口是否被转发。 插入您的IP地址和端口号,然后单击“检查”。

    You should receive a message, as seen above, like “Port X is open on [Your IP]”. If the port is reported as closed, double check both the settings in the port forwarding menu on your router and your IP and port data in the tester.

    如上所示,您应该收到一条消息,例如“端口X在[您的IP]上打开”。 如果端口报告为已关闭,请再次检查路由器的端口转发菜单中的设置以及测试仪中的IP和端口数据。



    It’s a wee bit of a hassle to set up port forwarding, but as long as you assign a static IP address to the target device and set up a dynamic DNS server for your home IP address, it’s a task you only need to visit once to enjoy hassle free access to your network in the future.

    设置端口转发很麻烦,但是只要您为目标设备分配静态IP地址并为家庭IP地址设置动态DNS服务器,您只需访问一次即可完成此任务将来可以轻松无忧地访问您的网络。

    翻译自: https://www.howtogeek.com/66214/how-to-forward-ports-on-your-router/

    路由器上端口转发

    展开全文
  • # 移除指定的 Android设备 端口转发规则(tcp:8080 为 Android设备 的端口) adb reverse --remove tcp:8080 # 移除所有的转发规则 adb reverse --remove-all 场景应用举例: 在 PC 端执行“python3 -m ...

    本文链接: https://blog.csdn.net/xietansheng/article/details/85472666

    1. adb 简介

    adb(Android Debug Bridge)是用于 PC端 与 Android模拟器/设备 进行通信的命令行工具。

    adb命令在{Android_SDK}/platform-toos/目录下。

    官网ADB介绍: https://developer.android.google.cn/studio/command-line/adb

    adb 常规命令:

    adb devices [-l]                        # 列出已连接的设备(-l 输出型号等详细信息)
    adb help                                # 打印帮助信息
    adb version                             # 打印 adb 的版本信息
    adb -s <serial_number> [commands...]    # 将 adb 命令发送给指定的已连接设备
    

    查看已连接的设备, 执行adb devices输出格式:

    List of devices attached
    serial_number   state
    serial_number   state
    ...
    
    • serial_number: 设备的序列号,adb 服务器识别具体设备的唯一标识。
    • state: 设备当前的状态, 有以下值:
      • offline: 设备离线, 与 adb 服务器无响应, 需要重连。
      • device: 设备正常与 adb 服务器连接。
      • no device: 未连接设备

    具体输出示例:

    $ adb devices
    List of devices attached
    emulator-5554           device      # 模拟器设备
    device_ip_address:5555  device      # 无线连接的设备
    813KPTM2090496          device      # USB 连接的设备
    

    2. 设备连接

    2.1 adb 服务

    启动一个 adb 客户端时,PC端的 adb 服务器进程将自动启动(如果没有启动),并绑定本地 TCP 5037 端口,监听 adb 客户端发送的命令。

    # 检测 adb 服务器是否在运行,如果没有则启动 adb 服务器
    adb start-server
    # 检测 adb 服务器是否在运行,如果没有则启动 adb 服务器,然后再列出已连接设备
    adb devices
    
    # 终止 adb 服务器进程
    adb kill-server
    

    2.2 USB 连接设备

    USB 数据路连接 Android 设备前,需要先打开开发者选项,并启用 USB调试:

    • 显示开发者选项: 设置 -> 系统/关于手机 -> 连续点击 7 次版本号,返回上一层,在底部便能找到开发者选项(具体不同手机方法细节不同)。
    • 启用USB调试: 设置 -> 系统/关于手机 -> 开发者选项 -> 打开USB调试开关。

    然后再用 USB 数据线连接 Android 设备,在 PC 终端执行adb devices查看连接情况。

    如果连接的设备系统是 Android 4.2.2 或更高版本,当设备连接 adb 服务器时,将在手机弹出对话框,询问是否允许这台计算机上调试。

    2.3 WLAN 无线连接设备

    adb 服务器端除了使用 USB 连接设置外,也可以使用无线连接。无线连接需要 Android 设备和 adb 服务器 PC 连接到同一个 WLAN 网络,某些 PC 端可能需要正确配置防火墙的访问点以支持设备通过网络对 adb 服务器的访问。

    无线连接步骤:

    # 1. 必须先使用 USB 连接到 Android 设备,并且能通过 adb 正常访问
    
    # 2. 设置目标设备监听 5555 端口上的 TCP/IP 连接(有多个设备使用 -s 指定)
    adb tcpip 5555
    
    # 3. 断开 USB 连接(拔掉 USB 数据线)
    
    # 4. 查找目标设备的 IP 地址: 
    #    设置 -> 网络和互联网/无线和网络/连接 -> WLAN
    #    点击已连接的 WIFI 找到 IP地址
    #    假设 IP地址为: 192.168.0.100
    
    # 5. 连接设备, 默认连接的端口号为 5555, 如果是其他端口, IP为 HOST:PORT
    adb connect 192.168.0.100
    
    # 6. 查看是否设备是否正常连接
    adb devices
    
    # 7. 断开无线连接的设备
    adb disconnect 192.168.0.100
    

    3. 端口转发

    3.1 端口转发: PC -> Android

    使用adb forward命令可以设置 PC 端的任意端口的 TCP 请求转发到已连接的 Android 设备上的指定端口。

    #
    # 1. 设置转发规则
    #
    # 将 PC主机的 8000端口 的TCP请求转发到 Android设备的 8080端口
    adb forward tcp:8000 tcp:8080
    
    #
    # 2. 查看所有已设置的转发规则
    #
    adb forward --list
    
    #
    # 3. 移除转发规则
    #
    # 移除指定的 PC本地 端口转发规则(tcp:8000 为 PC本地 的端口)
    adb forward --remove tcp:8000
    
    # 移除所有的转发规则
    adb forward --remove-all
    

    3.2 端口转发: Android -> PC

    端口转发可以从 PC主机 转发到 Android设备,也可以使用adb reverse命令,将 Android设备 的端口转发到 PC主机。

    #
    # 1. 设置转发规则
    #
    # 将 Android设备的 8080端口 的TCP请求转发到 PC主机的 8000端口
    adb reverse tcp:8080 tcp:8000
    
    #
    # 2. 查看所有已设置的转发规则
    #
    adb reverse --list
    
    #
    # 3. 移除转发规则
    #
    # 移除指定的 Android设备 端口转发规则(tcp:8080 为 Android设备 的端口)
    adb reverse --remove tcp:8080
    
    # 移除所有的转发规则
    adb reverse --remove-all
    

    场景应用举例: 在 PC 端执行“python3 -m http.server 8000”, 在 8000 端口 开启 python 自带的一个 HTTP 服务器,再执行“adb reverse tcp:8080 tcp:8000”命令设置 Android 到 PC 的端口转发,在 Android 设备浏览器访问“http://localhost:8080”,直接就访问到了 PC 端 HTTP 服务器。

    4. apk 安装卸载

    使用 adb 的install命令将 PC 上的 APK 包安装到已连接的 Android 设备上, 或使用uninstall命令从 Android 设备上卸载 APP。

    #
    # 安装 APK 到 Android设备, -r 表示替换当前的已安装的版本
    #
    adb install [-r] <apk_file_path>
    
    #
    # 卸载指定的 APP, -k 表示卸载后保留 APP 的数据和缓存
    #
    adb uninstall [-k] <package_name>
    

    5. 文件传输

    使用 adb 的pushpull命令将文件或目录(及其子目录)从 PC本地 推送到 Android设备,或从 Android设备 复制文件或目录(及其子目录)。

    • 推送文件: PC -> Android
    格式: 
        adb push <LocalFileOrDir> <RemoteFileOrDir>
    
    示例:
        adb push aa.txt /mnt/sdcard/        # 把 aa.txt 文件上传到 /mnt/sdcard/ 目录下, 并以原文件名保存
        adb push aa.txt /mnt/sdcard/bb.txt  # 把 aa.txt 文件上传到 /mnt/sdcard/ 目录下, 以 bb.txt 命名保存
        
        adb push aaDir /mnt/sdcard/bbDir    # 把文件夹 aaDir 上传到 /mnt/sdcard/bbDir, 
                                            # 如果 bbDir 文件夹存在, 保存为 /mnt/sdcard/bbDir/aaDir
                                            # 如果 bbDir 文件不夹存在, 保存为 /mnt/sdcard/bbDir
    
    • 拉取文件: Android -> PC
    格式: 
        adb pull <RemoteFileOrDir> [LocalFileOrDir]
    
    示例:
        adb pull /mnt/sdcard/aa.txt         # 把 /mnt/sdcard/aa.txt 文件拉取到 当前目录, 并以原文件名保存
        adb push /mnt/sdcard/aa.txt aaDir/  # 把 /mnt/sdcard/aa.txt 文件拉取到 ./aaDir/ 目录下, 并以原文件名保存
        adb push /mnt/sdcard/aa.txt bb.txt  # 把 /mnt/sdcard/aa.txt 文件拉取到 当前目录, 保存为 bb.txt
        
        adb push /mnt/sdcard/aaDir          # 把 /mnt/sdcard/aaDir 文件夹拉取到 当前目录, 并以原文件夹名保存
        adb push /mnt/sdcard/aaDir bbDir    # 把 /mnt/sdcard/aaDir 文件夹拉取到 本地,
                                            # 如果 bbDir 文件夹存在, 保存为 ./bbDir/aaDir
                                            # 如果 bbDir 文件夹不存在, 保存为 ./bbDir
    

    如果需要删除文件,可以发送 shell 命令到 Android 设备,参考后面的发送 shell 命令介绍。

    6. 日志输出: logcat

    官网 LogCat 详细介绍: https://developer.android.google.cn/studio/command-line/logcat

    语法格式:

    adb logcat [options] [filter-spec]
    

    输出日志:

    # 在控制台输出所有日志
    adb logcat
    
    # 先远程登录到设备的 Shell 环境中, 
    # 然后再设备中执行 logcat 输出日志
    adb shell
    logcat
    

    7. adb shell

    adb shell 命令的介绍,详见下一篇: Android SDK: adb shell 命令的使用


    展开全文
  • 版权声明:转载请注明出处:http://blog.csdn.net/dajitui2024 https://blog.csdn.net/dajitui2024/article/details/79396562 ...
    版权声明:转载请注明出处:http://blog.csdn.net/dajitui2024 https://blog.csdn.net/dajitui2024/article/details/79396562

    参考:https://www.youtube.com/watch?v=BeGtWV-AXnQ

    apt-get install network-manager-pptp
    apt-get install network-manager-pptp-gnome
    

    访问:https://www.vpnbook.com/freevpn


    操作如图



    最后访问:http://www.canyouseeme.org/验证
    验证成功即可。
    根据我亲自测试,最后失败了,因为网路无法直连国外。
    但是这个方案,并不影响vps去使用。
    仅作参考。

    展开全文
  • 怎么设置路由器端口转发功能?

    千次阅读 2021-07-28 03:03:24
    问题:我怎么开启路由器端口转发功能?回答:一些游戏和应用程序,可能需要打开一个或多个端口或您的家庭路由器上设置端口转发,下面是所需的步骤:警告:常闭,以防止未经授权的访问到您的家庭网络的路由器端口。...
  • 端口转发(Linux/Windows)

    千次阅读 2021-05-11 11:29:55
    【目的】监听本机 7777 端口,将数据转发到...【方法】1、ncat(Linux/Windows 通用)(ncat端口转发)ncat--sh-exec"ncat192.168.7.88888"-l7777--keep-open2.1、设置#将本机7777端口收到的内容转发到192.168.7.8的8888...
  • windows端口转发

    2021-07-06 10:52:55
    目前只支持tcp协议的端口转发,前提需要作为portproxy的主机(B)需要安装IPV6,安装可以不启用IPV6。 A.配置方法 假定需要通过 B 的 7001 端口连接 C 的 8001 端口,则需要在主机B的命令行输入如下语句: ---如果...
  • 一、Firewall IPv4端口转发开启IPV4转发echo 1 > /proc/sys/net/ipv4/ip_forward开启firewalld防火墙systemctl start firewalld.servicesystemctl enable firewalld.service端口转发,下面是开启1234端口,目标IP...
  • 使用Node.js应用程序连接到没有公共IP的PC,以进行反向端口转发/隧道。
  • 端口、TCP/UDP、端口转发、UPnP

    千次阅读 2022-01-05 11:30:48
    介绍什么是端口和端口转发、TCP/UDP之间的区别以及UPnP协议
  • SSH端口转发

    千次阅读 2018-09-08 20:26:26
    端口转发概述: 让我们先来了解一下端口转发的概念吧。我们知道,SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据。但是,SSH 还同时提供了一个非常有用的功能,这就是端口转发。它能够将其他 TCP 端口...
  • 群晖端口转发 路由器配置

    万次阅读 2019-06-28 09:24:24
    本机端口表示的是内部开启的端口号,比如ssh的端口22 外部端口表示外网可以访问的端口号,比如设置为8787 那么此时,如果你在外网需要访问ssh连接,可以通过8787访问,同理设置mysql 内网为3306,外网为8789,那么...
  • lcx端口转发

    千次阅读 2019-05-12 21:33:31
    0x01 正向端口转发 0x02 反向端口转发 0x03 msf正向shell 0x04 msf反向shell 注: 边界机器 win08 192.168.222.175 内网机器 win7 192.168.222.137 msf机器 Ubuntu 192.168.222.177 0x01 正向端口转发 在边界机器上...
  • windows 如何实现端口转发

    千次阅读 2019-09-25 09:00:36
    windows 如何实现端口转发 在Linux中,使用iptables可以非常轻松地配置端口重定向。在Windows Server系统上,路由和远程访问服务(RRAS)通过使用虚拟专用网络 (VPN) 或拨号连接支持远程用户或站点到站点连接,但...
  • tcp端口转发工具

    千次阅读 2021-01-03 22:39:31
    GatewayBanch是一个基于DotNetty的轻量级端口转发工具 开源地址 github 地址 gitee 地址 诞生背景 做tcp通讯的朋友可能深有感触,当一个tcp项目上线之后避免不了需要数据转发 解决问题 频繁新增转发的需求 第一次...
  • ubuntu下配置iptables、ufw端口转发

    千次阅读 2021-12-19 10:51:25
    iptables 端口转发(CentOS) 注意:一来一去 在中转服务器操作 iptables -t nat -A PREROUTING -p tcp --dport [端口号] -j DNAT --to-destination [目标IP] iptables -t nat -A POSTROUTING -p tcp -d [目标IP] -...
  • 如果要在虚拟机中运行服务器软件,则需要通过虚拟NAT更改其网络类型或转发端口。虚拟机通常不需要从虚拟机外部访问,因此默认值对于大多数人来说都是正常的。它实际上提供了一些安全性,因为它将虚拟机与传入连接...
  • iptables 端口转发Port forwarding is simple to do with iptables in a Linux box which may probably already being used as the firewall or part of the gateway operation. In Linux kernels, port forwarding ...
  • 端口转发 虚拟机VirtualBox and VMware both create virtual machines with the NAT network type by default. If you want to run server software inside a virtual machine, you’ll need to change its network ...
  • ros端口转发

    千次阅读 2020-07-28 22:39:16
    一、端口转发 静态配置: [admin@MikroTik] > /ip firewall nat add chain=dstnat dst-address=x.x.x.x(静态公网IP) protocol=tcp dst-port=22 action=dst-nat to-addresses=x.x.x.x(本地静态内网IP) to-...
  • 假定需要通过192.168.204.150的3389端口转发到3340端口,则需要在192.168.204.150主机的命令行输入如下语句: netsh interface portproxy add v4tov4 listenport=3340 listenaddress=192.168.204.150 connectport=...
  • SSH端口转发Forwarding及隧道Tunneling

    千次阅读 2022-03-02 10:25:40
    SSH一共提供了 3 种端口转发,分别是本地转发(-L参数)、远程转发(-R参数)、动态转发(-D参数)。 还可以实现多层转发。
  • Windows 上路由、端口转发配置

    千次阅读 2021-08-04 15:35:50
    有时候我们会遇到这样的场景,一批同一局域网中只有某一台主机带外且系统为windows,局域网中其他非带外的主机要想访问外网,本文将介绍如何配置在带外主机上开启路由及端口转发。 二、配置操作 2.1、带外主机开启...
  • 最近搭了一个博客网站,但是在访问的时候需要额外加上客户界面的端口号,显得比较low,所以想用nginx实现端口代理,访问80端口之后,自动转发到指定端口,这样间接的隐藏了访问的端口 安装Nginx 简要的介绍一下我...
  • 最近把无线路由从y1s换到了好了,回到正题,这次的问题就是路由换完以后,虽然都是就是这个已启用UDP的问题,新版RDP加入了3389的UDP支持,在可用的情况下可以提高吞吐量,进一步提升远程桌面效果。之前在Y1S上开完...
  • 内网入口——代理搭建&端口转发

    千次阅读 2020-12-19 10:41:40
    在内网渗透过程中经常会遇到搭建代理和端口转发的情况,本文记录一些常用工具的使用方法和典型应用场景,便于查阅。
  • MobaXterm通过SSH隧道配置RDP端口转发

    千次阅读 2019-09-29 20:41:19
    MobaXterm通过SSH隧道配置RDP端口转发 2019年9月29日星期日 版本1.0 目的:解决校园网跨网段,不能远程访问(微软RDP协议,客户端mstsc,默认端口:3389)服务器的问题 1 首先在服务器(Ubuntu 16.04.1)上安装xfce4...
  • NAT端口转发工具

    2015-02-15 15:31:15
    windows 版本, 32bit, NAT端口转发工具, 模拟防火墙等端口转发工具
  • 端口转发的概念: 它是指当访问指定的ip+端口时,可以将流量转发至指定其他指定的ip+端口。 转发的目的ip和端口,可以是本机或其他主机。当转发时不指定ip时,则默认为转发目的ip为本机ip。当转发时指定了ip,却...
  • 理论上,任何接入互联网的计算机都是可访问的,但是如果目标主机处于内网,而我们又想和该目标主机进行通信的话,就需要借助一些端口转发工具来达到我们的目的 注:文中提到的所有工具下载地址...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 52,202
精华内容 20,880
关键字:

启用端口转发