首页 > 其他分享 >MacOS 端口映射

MacOS 端口映射

时间:2023-11-22 23:55:05浏览次数:42  
标签:MacOS enable xxx pfctl etc pf forwarding 端口映射

macbook 下,要绑定 80 端口的话。
一种方式是用 root 权限启动,即 sudo 启动服务进程。但 sudo 指令存在一定的安全问题,能不使用的情况下我们都尽量不要使用。
所以这里给出另外一种解决方法

端口映射

  1. 在 /etc/pf.anchors/ 目录下创建一份 xxx.forwarding (xxx 可以自定义)

    $ sudo touch /etc/pf.anchors/xxx.forwarding
    

    插入以下内容

    rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 10080
    rdr pass inet proto tcp from any to any port 443 -> 127.0.0.1 port 10443
    
  2. 在 /etc/ 目录下创建一份 pf-xxx.conf (xxx 可以自定义)

    $ touch /etc/pf-xxx.conf
    

    插入以下内容 (xxx.forwarding 为 步骤1 创建的文件)

    rdr-anchor "xxx.forwarding"
    load anchor "xxx.forwarding" from "/etc/pf.anchors/xxx.forwarding"
    
  3. 执行 $ pfctl -vnf /etc/pf-xxx.conf 检查配置文件有没有问题 (非必须)

  4. 执行 $ sudo pfctl -F all -ef /etc/pf-xxx.conf 让端口转发生效

  5. 执行 $ sudo pfctl -s nat 查看是否生效

    若出现以下输出则证明端口转发成功

    rdr-anchor "xxx.forwarding" all
    
  6. 现在,启动服务进程,监听 10080 端口,访问下 http://localhost/ 试试吧 :)

开机自启动配置

端口映射的配置已经生效,但每次重启电脑后都要重新执行一次让端口转发生效的命令显然是很不方便的。所以我们要增加一份开机自启动的配置

  1. 在 /usr/local/bin/ 目录下创建一份 enable-pf-xxx.sh (xxx 可以自定义)

    $ touch /usr/local/bin/enable-pf-xxx.sh
    

    插入以下内容 (pf-xxx.conf 为 端口映射步骤2 创建的文件)

    #!/bin/bash
    
    sleep 10
    /sbin/pfctl -ef /etc/pf-xxx.conf
    

    同时给 enable-pf-xxx.sh 提权

    chmod 755 /usr/local/bin/enable-pf-xxx.sh
    
  2. 在 /Library/LaunchDaemons/ 目录下创建一份 com.xxx.pfctl.plist (xxx 可以自定义)

    $ touch /Library/LaunchDaemons/com.xxx.pfctl.plist
    

    插入以下内容 (com.xxx.pfctl 可自定义, enable-pf-xxx.sh 为 开机自启动配置步骤1 创建的文件)

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    	<dict>
    		<key>Label</key>
    		<string>com.xxx.pfctl</string>
    		<key>ProgramArguments</key>
    		<array>
    		  <string>/usr/local/bin/enable-pf-xxx.sh</string>
    		</array>
    		<key>StandardOutPath</key>
    		<string>/var/log/pf/access.log</string>
    		<key>StandardErrorPath</key>
    		<string>/var/log/pf/error.log</string>
    		<key>RunAtLoad</key>
    		<true/>
    	</dict>
    </plist>
    

    ps: 生成的日志会存放在 /var/log/ 目录下

  3. 每次开机之后 mac 都会自动去执行 /Library/LaunchDaemons/目录下的文件。所以配置好了之后可以重启一下, 执行 端口映射步骤5 的命令查看自启动配置是否生效

   

标签:MacOS,enable,xxx,pfctl,etc,pf,forwarding,端口映射
From: https://www.cnblogs.com/luoxh-whn/p/17850616.html

相关文章

  • macOS安装安卓模拟器和apk包
    背景公司项目有个POS收银系统,是安卓版的,提供的是apk包,而办公电脑是mac,需要安装使用 解决方法安装安卓模拟器模拟器下载地址:https://www.aliyundrive.com/s/NZet5jrKxV4下载完成后,将.mp4后缀改为.dmg。然后如下图方式安装。  遇到问题解决办法Couldnotautomati......
  • centos7.9 部署FastDFS+Nginx本地搭建文件服务器 高性能的文件服务器集群 同时实现在
    前言FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线......
  • DevExpress中文教程 - 如何在macOS和Linux (CTP)上创建、修改报表(上)
    DevExpressReporting是.NETFramework下功能完善的报表平台,它附带了易于使用的VisualStudio报表设计器和丰富的报表控件集,包括数据透视表、图表,因此您可以构建无与伦比、信息清晰的报表。DevExpressReports—跨平台报表组件,允许用户在针对任何基于.NET平台的应用程序中生成......
  • macos:查看文件的完整路径(12.7)
    一,第一种方法:打开终端,把文件拖动到终端,即可以看到完整的路径:二,第二种方法:用快捷键复制路径:打开窗口后同时按下:option+command+c然后在可输入的软件中粘贴即可:说明:刘宏缔的架构森林—专注it技术的博客,网站:https://blog.imgtouch.com原文: https://blog.imgtouch.......
  • python:第八章:macos为python配置环境变量(3.12.0)
    一,查看老版本的python信息:1,启动终端,查看旧的python的版本liuhongdi@192~%python--version Python3.9.12,查看旧的pytnon的安装路径 liuhongdi@192~%whichpython python:aliasedto/Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9二......
  • python:第七章:macos安装python(3.12.0)
    一,下载python点击Downloads->macOS:点击安装包链接下载:二,安装双击下载的安装包,进入安装界面,点继续按钮,如图:一步一步点击继续,此处点击同意按钮:此处点击安装按钮:安装完成后点击关闭按钮即可,如图:说明:刘宏缔的架构森林—专注it技术的博客,网站:https://blo......
  • Nessus 10.6 Auto Installer for macOS Sonoma (updated Nov 2023)
    Nessus10.6AutoInstallerformacOSSonoma(updatedNov2023)发布Nessus试用版自动化安装程序,支持macOSSonoma、RHEL9和Ubuntu22.04请访问原文链接:https://sysin.org/blog/nessus-auto-install-for-macos/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org......
  • macOs Catalina 10.15.7安装xcode
    iMac新装了系统(Catalina10.15.7)之后,安装git提示缺少xcode试了以下方法,都没有成功:1、执行 xcode-select--install,提示:requestedforcommandlinedevelopertools2、通过appstore下载xcode,提示:不能将Xcode安装在macOs上,因为需要macOsv13.5或更高版本 查询了网上的方法......
  • macOS系统IntelliJ IDEA安装 新手详细教程(全网最详细)
    1.安装地址:https://www.jetbrains.com/idea/download/?section=mac#section=windows 2.下载完成后,点击打开安装包,将安装包拖入Applications. 双击打开idea.同意协议.  3.进入后学生账号登录可以免费使用.或者淘宝购买激活码(有风险).支持正版! ......
  • macOS系统安装Java环境 Jdk1.8安装 新手详细教程(全网最详细)
    1.jdk安装包下载https://www.oracle.com/cn/java/technologies/downloads/#java8-mac 点击同意条款,并下载. 注册/登录Oracle. 2.下载完成之后双击安装包进行安装. 输入开机密码,安装软件. 3.配置JDK环境变量.(1)打开终端: 打开访达,选择应用程序中的实......